1. 程式人生 > >c++程式大資料量處理效能優化

c++程式大資料量處理效能優化

1. 現在處理的程式為每秒鐘處理20w條資料,甚至更多,加快處理速度,總結了一些經驗,記錄下來

程式的資料結構裡面儘量避免string,map這樣的資料結構,因為string雖然不用自己管理指標,但是在構造和析構的時候很費資源,還有在執行c_str()的時候要new出一塊記憶體來,這樣的頻繁執行的程式塊中,會非常費時間。map在插入的時候,因為要保持rbtree的平衡結構,要進行self_balance,每次調整很費時間,如果資料不是特別多的時候,建議不要用map,如果能夠用hash_map儘量用它,因為在大資料處理時候,hash_map的效率還是挺高的。

2. 儘量用採用空間換時間策略,例如通過'a' 'b' 'c'分別找到1, 2, 3就不用放到一個字元數組裡面char sz[] = {'a, 'b', 'c''};然後寫函式遍歷它找了。直接申請255個char空間,像這樣

char szBuffer[255];

memset(szBuffer, 0, sizeof szBuffer);

szBuffer['a'] = 1;

szBuffer['b'] = 2;

szBuffer['c'] = 3;

這樣直接通過整數形式的索引形式,直接索引找到,加快了查詢速度 

相關推薦

c++程式料量處理效能優化

1. 現在處理的程式為每秒鐘處理20w條資料,甚至更多,加快處理速度,總結了一些經驗,記錄下來程式的資料結構裡面儘量避免string,map這樣的資料結構,因為string雖然不用自己管理指標,但是在構造和析構的時候很費資源,還有在執行c_str()的時候要new出一塊記憶體來

記一次料量處理效能調優的過程總結

一、背景介紹 1、系統的架構是spring+mybaties+oracle。 2、系統處理的資料量在五十萬到百萬級之間,採用了kafka進行分散式處理,主要功能和要優化的模組在資料清算和資料匯出。 二、可優化點介紹 1、kafka—分散式訂閱-釋出訊息系統 kafka是一款

afs在料量時查詢優化

afs查詢,mule報錯的問題 1.mule報錯的原因 a)mule預設請求響應時間為10s,當請求返回的時間超過10秒就會報錯 2.導致請求時間過長的原因 a)欄位沒有建索引,count(*)統計記錄總數耗時過長(283W記錄統計耗時8-9s) b)一次性請求數量過多(經測試500條資料4

[算法系列之十]料量處理利器:布隆過濾器

【引言】 在日常生活中,包括在設計計算機軟體時,我們經常要判斷一個元素是否在一個集合中。比如在字處理軟體中,需要檢查一個英語單詞是否拼寫正確(也就是要判斷 它是否在已知的字典中);在 FBI,一個嫌疑人的名字是否已經在嫌疑名單上;在網路爬蟲裡,一個網址是否被訪問過等等。最直

淺談使用ArcPy執行料量處理任務

Python功能強大而易於學習。對於ArcGIS for Desktop使用者來講,Python是提高工作效率的不二選擇。 Arcpy是esri提供的用於高效資料處理分析、製圖等的Python站點包。 利用ArcPy,我們可以在ArcMap的Python視窗

mysql 料量分頁優化

假設有一個千萬量級的表,取1到10條資料; select * from table limit 0,10; select * from table limit 1000,10; 這兩條語句查詢時間應該在毫秒級完成; select * from table limit

關於料量查詢報表優化

針對資料量巨大的報表查詢,總結了一下幾個處理方法: 看一個運用案例:多粒度(年月日,省、地市、熱點、ac、ap)下每天20W條,每月800W條,自由選擇35天內資料的查詢。 直接查詢頁面崩潰,運用了以下幾點,基本上能保證在1-2分鐘(100秒左右)內頁面相應載入。 一:

存在彙總統計等功能的料量報表的優化方案

對於大資料量,多層分組的的彙總報表不能採用分頁標籤,可以採用如下的優化方案: 一、先初步對報表進行優化: 1、儘量在sql實現group分組,資料庫雖然要進行分組運算,但是資料庫中有索引,運算速度快,且 取到報表伺服器端的記錄數大大減少,取數速度大大加快,因此在報表端進行分

料量分頁優化--延遲查詢

延遲關聯 select * from it_area where name like '%東山%';+------+-----------+------+ | id   | name      | pid  | +------+-----------+------+ |  

MySQL的MyISAM和InnoDB的料量查詢效能比較

因為工作關係,有一個超過11億記錄的MySQL資料庫,之前一直以為MyISAM引擎的查詢效能會超過InnoDB,這兩天特意測試了一下,不過因為資料量太大,轉換引擎就花了幾天時間。 測試環境: DELL 860伺服器,CPU Xeon3210, 記憶體8G MySQL版本5

Salesforce 料量處理篇(二)Index

本篇參考: https://developer.salesforce.com/docs/atlas.en-us.202.0.salesforce_large_data_volumes_bp.meta/salesforce_large_data_volumes_bp/ldv_deployments_infras

C#使用NPOI處理料量EXCEl2007

           日常在做專案的時候,往往不能單單使用web系統,往往要結合第三方辦公軟體共同來完成相關的任務,比如excel,但是excel2003和excel2007有很大的不同, excel2003只能儲存65536行資料,而excel2007能儲存100多萬行資

SQL料量分頁效能優化

目前在進行web api只讀介面的改造,在改造過程中,發現改在後響應時間和之前區別不是很大,通過測試結果顯示在sql的分頁功能處找到原因,並對其進行優化,優化方案如下。測試內容此次執行時間對比採用平臺資金記錄最多的使用者 user_id 36062測試次數未5次  為避免索引

料量表的查詢優化及索引使用

一、對於運算邏輯,儘可能將要統計的各專案整合在一個查詢語句中計算,而不是用分組條件或分專案呼叫多個查詢語句,而後在程式碼裡計算結果。 二、查詢語句的優化,諸如不用"select *"、多表關聯查詢時新增別名於查詢欄位上、避免使用in、not in關鍵字、非去除重複時用union all替換uni

料量 Mybatis 分頁外掛Count語句優化

前言 當在大數量的情況下,進行分頁查詢,統計總數時,會自動count一次,這個語句是在我們的查詢語句的基礎上巢狀一層,如: SELECT COUNT(*) FROM (主sql) 這樣在資料量大的情況下,會出問題,很容易cpu就跑滿了 優化 在mapper.xml

mysql料量優化

1 優化sql和索引2 增加快取如:redis3 主從複製或主主複製,讀寫分離4 利用mysql自帶分割槽表5 先做垂直拆分,將一個大系統分為多個小系統,也就是分散式6 水平切分,要選擇一個合理的sharding key,為了有好的查詢效率,表結構也要改動,做一定的冗餘,應用也要改,sql中儘量帶shardi

料量高併發的資料庫優化詳解(MSSQL)

轉載自:http://www.jb51.net/article/71041.htm 如果不能設計一個合理的資料庫模型,不僅會增加客戶端和伺服器段程式的程式設計和維護的難度,而且將會影響系統實際執行的效能。所以,在一個系統開始實施之前,完備的資料庫模型的設計是必須的。 一、資料庫結構的設計 在一個系統分析、設計

料量 與 UI互動時的處理 總結與心得

【以下均在主執行緒中操作時】1、UI直接操作,資料量較大時,直接使用UI會非常慢2、資料驅動操作,資料量較大時,資料與UI的互動效率相比“1”提升明顯總結:但以上這兩種操作  都會“較長時間”佔用主執行緒,導致UI假死現象【解決辦法,以下兩點並用】1、非同步,使用子執行緒處理耗時業務邏輯,避免因主執

tomcat優化---料量提交tomcat時,tomcat無法接收導致頁面無反應

tomcat優化—大資料量提交tomcat時,tomcat無法接收導致頁面無反應 關於tomcat的一個優化問題: 有時候儲存大資料量的資料時。tomcat不優化的話,頁面會沒反應。tomcat後臺並不報錯,僅僅是提示以下內容: 警告: More than th

MySQL料量分頁查詢方法及其優化 MySQL料量分頁查詢方法及其優化

MySQL大資料量分頁查詢方法及其優化   ---方法1: 直接使用資料庫提供的SQL語句---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適應場景: 適用於資料量較少的情況(元組百/千級) --