/images/avatar.jpg

雨临Lewis的博客

别了,珈乐

江湖路远,有缘再见

感谢这一路走来的欢笑与感动,东北的小狼公主提前离开了城堡,皇家骑士们依然守候在身后。

别了,珈乐。

桌面窗口管理器占用内存过高

桌面窗口管理器(dwm.exe)内存泄漏

自从某天更新了Intel的核显驱动后,就发现电脑开机一段时间后必然发生卡顿,后来发现每次卡顿都是桌面窗口管理器(dwm.exe)占用内存过高。观察一段时间后发现,该进程内存会无限增加,怀疑发生了内存泄漏。在知乎搜索后发现很多人遇到了同款问题,这里记录下解决方法。

ELK系列(6) - Elasticsearch常用接口

创建索引

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// 创建blog索引,类型是_doc,id是1
curl -H 'Content-Type:application/json' -XPUT http://localhost:9200/blog/_doc/1 -d '
{
      "id": "1",
      "title": "New version of Elasticsearch released!",
      "content": "Version 1.0 released today!",
      "priority": 10,
      "tags": ["announce", "elasticsearch", "release"]
}'

// 创建blog索引,类型是_doc,id由ES自己生成
// 该id长度为20个字符,URL安全,base64编码,GUID,分布式系统并行生成时不可能会发生冲突
curl -H 'Content-Type:application/json' -XPOST http://localhost:9200/blog/_doc/ -d '
{
      "title": "New version of Elasticsearch released!",
      "content": "Version 1.0 released today!",
      "priority": 10,
      "tags": ["announce", "elasticsearch", "release"]
}'

ELK系列(5) - Elasticsearch性能调优

机器内存分配

官方推荐一个ES节点最好是分配当前机器最大内存的50%,比如机器内存是16g,就分配8g给ES:-Xmx8g

剩下的8g内存并不是说就闲置了,ES会拿机器剩余的内存来优化自身的查询效率。也就是说,并不是一味将最大内存设置很大就是最优解。

MyBatis问题汇总

使用domainObjectRenamingRule报错

在使用MyBatis逆向工程时报错如下:

1
2
3
4
5
6
org.mybatis.generator.exception.XMLParserException: XML Parser Error on line 43: 必须声明元素类型 "domainObjectRenamingRule"。
    at org.mybatis.generator.config.xml.ConfigurationParser.parseConfiguration(ConfigurationParser.java:121)
    at org.mybatis.generator.config.xml.ConfigurationParser.parseConfiguration(ConfigurationParser.java:82)
    at org.mybatis.generator.config.xml.ConfigurationParser.parseConfiguration(ConfigurationParser.java:74)
    at GeneratorSqlmap.generator(GeneratorSqlmap.java:22)
    at GeneratorSqlmap.main(GeneratorSqlmap.java:32)

PostgreSQL - SQL调优方案

查询执行很长时间的SQL(慢SQL)

可以通过查询系统表来找到目前处于活跃状态的SQL:

1
2
SELECT * FROM pg_stat_activity WHERE datname='数据库名' 
and client_addr = '发起查询的IP地址' order by state_change desc;

Java - 字符编码

字符集

字符集是一系列字符的集合,将每个收录的字符和数字进行映射。最早的字符集是ASCII,使用一个字节进行存储字符,8位一共可以表示256个字符,而ASCII只使用了其中的128位,即0~127位,这128位里面包括了常用的英文字符以及标点符号。

Spring Data Redis问题汇总

前言

本文基于以下版本:

1
2
3
4
5
6
<!--  对应的是3.3.0版本的jedis(redis的java客户端) -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>2.4.0</version>
</dependency>

Java数值问题汇总

double转成BigDecimal的精度损失问题

如果直接用构造方法将double数值转成BigDecimal,可能存在损失精度的问题:

1
2
3
4
5
6
final BigDecimal b1 = new BigDecimal(0.48);
final BigDecimal b2 = BigDecimal.valueOf(0.48);
// 0.479999999999999982236431605997495353221893310546875
System.out.println(b1);
// 0.48
System.out.println(b2);

lombok问题汇总

Eclipse安装lombok插件

方式一

使用lombok框架开发可以减少大量重复性的代码,大大提高开发效率,但是Eclipse本身并不支持lombok,会编译报错。除了项目要导入lombok依赖,还需要为Eclipse安装该lombok插件。

安装方法很简单,找到你导入的lombok的jar包,双击运行该jar包,会出现一个安装界面。或者右键jar包,选择打开方式,接着选择Java (TM) Platform SE binary,会出现安装界面。

在安装界面选择当前的Eclipse进程,或者点击左下角的Specify location...选择你要安装插件的Eclipse,接着点右下角的Install / Update,很快就安装完毕,点击Quit Installer

lombok的下载地址:https://projectlombok.org/downloads/lombok.jar