專案中的效能優化

2021-08-26 19:09:41 字數 1050 閱讀 6824

在實際專案中,由於需要把介面返回來的物件存在資料庫中,所以用到了jackson元件把物件轉成json後再保持到資料庫中。由於每天處理的資料量太大,而業務對時間的要求非常嚴格,即使採用4臺機器做分布式後,計算時間仍然在2——3個小時,於是效能優化提上了日程。

用jprofiler工具觀察到效能主要在兩個地方耗時比較多:1.tojson串轉換,2.呼叫其他系統介面。

呼叫其他系統介面耗時佔比在17%左右,tojson轉換耗時佔比在20%左右。經過小組討論,決定採用memcached在執行計算之前就快取資料。快取命中率為83.4%的情況下,效能如下:

統計 未使用快取

使用快取

計算總耗時

39 分鐘

34 分鐘

單個介面耗時 (ms/ 次) 38

12.9

介面 耗時總計

15 分鐘

5 分鐘

介面 呼叫次數

24002

24007

資料量

5000

5000

可見,呼叫介面效能提公升2/3。

tojson串轉換採用stringbuilder替換jackson的效能對比如下:

tojson 資料量10000,每個單個1400位元組左右 ,測試5次耗時(ms)情況如下

1 2

3 4

5 平均

jackson

1204

1183

1196

1202

1160

1189

new stringbuilder

1060

941

912

997

1160

1014

new stringbuilder(1600)

784

824

853

818

778

811.4

從對比中可以看到

stringbuilder的效能比jackson提高1/4左右。

在使用vue的專案中對於效能優化的處理

1.優化 2.頁面效能優化 或元件懶載入 使用vue lazyload元件或其他一些元件 引入一張 引入一組 元件懶載入 vue.use vuelazyload,3.預載入快速顯示 4.三方外掛程式懶載入 按需載入 js檔案一般是同步載入的,放在頁面內會阻塞主要js檔案載入。使用場景 有的專案必須引...

Spark SQL專案中的優化思路

儲存格式的選擇 採取行式還是列式儲存?列儲存寫入時次數多,損耗時間多 反過來查詢的時候較快 壓縮格式的選擇 考慮壓縮速度和壓縮檔案的分割性 壓縮能夠較少儲存空間 提高資料傳輸速度 的優化 選擇的高效能的運算元 foreachpartition partitionofrecords.foreach 獲...

專案中如何優化細節

一.記憶體優化 1.減少記憶體洩露。如timer,delegate,block,corefoundation物件 c物件 image 2.降低記憶體使用峰值。如使用懶載入 二.效能優化 卡頓產生的原因 cpu計算時間以及gpu渲染時間較長,造成vsync 垂直同步的訊號 重新整理銜接不上 解決卡頓主...