性能分析二——cpu usage+Performance

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了性能分析二——cpu usage+Performance相关的知识,希望对你有一定的参考价值。

参考技术A 测试环境:Chrome。

     这次的bug是通过Chome的Task manager和Performance发现的。交互上肉眼看不出来有啥异样。经测试点击某个功能(微环境)前,Performance monitor中的CPU usage会回到很低的水平,3%-4%左右,可是点击了微环境后,如下图所示:

其实Task manager中的cpu意思差不多,如下图所示:

    可是点击微环境的功能后,在微环境的模式下CPU uasge会在99%-100%之间,如下图所示:

此时Chrome浏览器的任务管理器的CPU值如下(并不是一直这样,会上下变动):

   我们先不管开启后是不是应该一直这么高。点击关闭后回到默认的状态,温度场的功能都应该清掉。

可是关闭微环境后,浏览器中的cpu usage依然很高,如下图cpu拍照的图上也能看出来。

给CPU拍照,看出一老长的时间都在处理getHSV,而这个方法在MicoEnviroment.js(微环境管理)中调用的,如下图所示。

找到537行,调试一把,发现这个_updateSmoke方法一直在被调用,推测是关闭这个功能时,autoUpdate没有清除:

markdown Meningkatkan Performa Pencarian Text dengan Menggunakan全文索引

# Meningkatkan Pencarian Text dengan Menggunakan FULLTEXT indexing 

Pencarian adalah salah satu fitur paling penting dalam sebuah proyek. Semakin baik hasil pencarian dalam sebuah website,
maka akan meningkatkan pengalaman user dalam menggunakan website. 

Tulisan ini akan diawali dengan memperlihatkan kelemahan dari query `LIKE "%kata_kunci%"` dan memperkenalkan solusinya atas masalahnya 
yaitu dengan fulltext indexing. 

Sebelum itu mari kita membuat database dan mengisi datanya terlebih dahulu. 
```sql
# membuat databse
create database tempdb;
use temodb;

# membuat table  
create table blogs (
  id bigint primary key auto_increment, 
  body text
);

# mengisi data 
insert blogs (body) values 
("Satu objek yaitu: PHP"), 
("Ada dua objek yaitu: PHP dan XAMPP"), 
("Ada tiga objek yaitu: PHP dan XAMPP dan MYSQL"), 
("ada empat objek yaitu: PHP dan XAMPP dan MYSQL dan LARAVEL"); 
```

Setelah kita membuat database, table dan mengisinya dengan data dummy, kita bisa melihatnya terlebih dahulu dengan 
perintah `select * from blogs`.  

```bash
mysql> select * from blogs;
+----+------------------------------------------------------------+
| id | body                                                       |
+----+------------------------------------------------------------+
|  1 | Satu objek yaitu: PHP                                      |
|  2 | Ada dua objek yaitu: PHP dan XAMPP                         |
|  3 | Ada tiga objek yaitu: PHP dan XAMPP dan MYSQL              |
|  4 | ada empat objek yaitu: PHP dan XAMPP dan MYSQL dan LARAVEL |
+----+------------------------------------------------------------+
4 rows in set (0,00 sec)
```

Sekarang kita lihat penggunakan LIKE dalam melakukan pencarian. 

```bash
mysql> select * from blogs where body LIKE "%php%";
+----+------------------------------------------------------------+
| id | body                                                       |
+----+------------------------------------------------------------+
|  1 | Satu objek yaitu: PHP                                      |
|  2 | Ada dua objek yaitu: PHP dan XAMPP                         |
|  3 | Ada tiga objek yaitu: PHP dan XAMPP dan MYSQL              |
|  4 | ada empat objek yaitu: PHP dan XAMPP dan MYSQL dan LARAVEL |
+----+------------------------------------------------------------+
4 rows in set (0,00 sec)

mysql> select * from blogs where body LIKE "%php xampp%";
Empty set (0,00 sec)
```

Kita lihat dari hasil query diatas, pada pencarian dengan format `%php%` menghasilkan 4 rows, namun ketika `%php xampp%` 
tidak menghasilkan apa-apa (0 rows) padahal seharusnya kita menginginkannya menghasilkan 4 rows juga. 

Sekarang untuk solusinya, kita bisa menggunakan fulltext indexing. 

```sql
# Menambahkan index pada kolom body di table blogs 
ALTER table blogs add fulltext blogs (body);
```

Template query untuk pencarian menggunakan fulltext indexing.  
```sql
#template
select * from nama_table where (nama_kolom) against ("kata_kunci")
```

Sekarang kita lihat pengimplementasiannya  
```bash 
mysql> select * from blogs where match (body) against ("php");
+----+------------------------------------------------------------+
| id | body                                                       |
+----+------------------------------------------------------------+
|  1 | Satu objek yaitu: PHP                                      |
|  2 | Ada dua objek yaitu: PHP dan XAMPP                         |
|  3 | Ada tiga objek yaitu: PHP dan XAMPP dan MYSQL              |
|  4 | ada empat objek yaitu: PHP dan XAMPP dan MYSQL dan LARAVEL |
+----+------------------------------------------------------------+
4 rows in set (0,00 sec)

mysql> select * from blogs where match (body) against ("php mysql");
+----+------------------------------------------------------------+
| id | body                                                       |
+----+------------------------------------------------------------+
|  3 | Ada tiga objek yaitu: PHP dan XAMPP dan MYSQL              |
|  4 | ada empat objek yaitu: PHP dan XAMPP dan MYSQL dan LARAVEL |
|  1 | Satu objek yaitu: PHP                                      |
|  2 | Ada dua objek yaitu: PHP dan XAMPP                         |
+----+------------------------------------------------------------+
4 rows in set (0,01 sec)

mysql> select * from blogs where match (body) against ("php laravel");
+----+------------------------------------------------------------+
| id | body                                                       |
+----+------------------------------------------------------------+
|  4 | ada empat objek yaitu: PHP dan XAMPP dan MYSQL dan LARAVEL |
|  1 | Satu objek yaitu: PHP                                      |
|  2 | Ada dua objek yaitu: PHP dan XAMPP                         |
|  3 | Ada tiga objek yaitu: PHP dan XAMPP dan MYSQL              |
+----+------------------------------------------------------------+
4 rows in set (0,00 sec)

mysql> 
```

Sekarang hasil menjadi seperti yang kita inginkan, plus query ini otomatis mengurutkan hasil menurut text yang paling banyak
berisi kata kuncinya ^^ 

Cukup menarik? 

Terima kasih telah membaca. 

**Regards,**

[Philip Lambok](https://philiplambok.github.io)







以上是关于性能分析二——cpu usage+Performance的主要内容,如果未能解决你的问题,请参考以下文章

获得规定时间内CPU 占用情况

Spring Boot 执行器“system.cpu.usage”与“process.cpu.usage”

OpenProcess 在 wait_cpu_usage_lower 中失败

如何读取 Stock CPU Usage 数据

How to Limit NodeRunner.exe High Memory, CPU Usage

markdown Meningkatkan Performa Pencarian Text dengan Menggunakan全文索引