亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++開發的Redis數據導入工具優化

2020-05-23 14:19:23
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C++開發的Redis數據導入工具優化方法的相關資料,需要的朋友可以參考下
 

背景

使用C++開發了一個Redis數據導入工具 
從oracle中將所有表數據導入到redis中; 
不是單純的數據導入,每條oracle中的原有記錄,需要經過業務邏輯處理, 
并添加索引(redis集合); 
工具完成后,性能是個瓶頸;

優化效果

使用了2個樣本數據測試: 
樣本數據a表8763 條記錄; 
b表940279 條記錄;

優化前,a表耗時11.417s; 
優化后,a表耗時1.883s;

用到的工具

gprof, pstrace,time

使用time工具查看每次執行的耗時,分別包含用戶時間和系統時間; 
使用pstrace打印實時運行,查詢進程主要的系統調用,發現耗時點; 
使用gprof統計程序的耗時匯總,集中精力優化最耗時的地方; 

使用簡介: 

1.對g++的所有編輯和連接選項都必須要加上-pg(第一天由于沒有在連接處加上-pg選項,導致無法出統計報告); 
2.執行完程序后,本目錄會產生gmon.out文件; 
3.gprof redistool gmou.out > report,生成可讀文件report,打開report集中優化最耗時的函數;

優化過程

優化前11.417s:

 

復制代碼代碼如下:

time ./redistool im a a.csv
real    0m11.417s
user    0m6.035s
sys     0m4.782s (發現系統調用時間過長)

 

文件內存映射

系統調用時間過長,主要是文件讀寫,初步考慮是讀取文件時,調用api次數過于頻繁; 
讀取樣本采用的是文件fgets一行行的讀取,采用文件內存映射mmap后,可直接使用指針操作整個文件內存快;

日志開關提前

改進了文件讀寫后,發現優化效果比較有限(提高了2s左右);fgets是C的文件讀取庫函數,相比系統read(),是帶了緩沖區了,應該不會太慢(網上有人測試,文件內存映射相比fgets()能快上一個數量級,感覺場景應該比較特殊);

之后通過pstrace工具發現log.dat打開次數過多;原來是調試日志的開關寫到了后面,導致 調試日志都是會打開日志文件open("log.dat"); 
將日志開關提前;改進后,3.53s

 

復制代碼代碼如下:

time ./redistool im a a.csv
real    0m3.530s
user    0m2.890s
sys     0m0.212s

 

vector空間預先分配

后續通過gprof分析,某個函數的vector內存分配次數多,并有不少復制次數: 
改進以下這行代碼:

vector <string> vSegment;
使用靜態vector變量,并預先分配內存:

 

復制代碼代碼如下:

static vector <string> vSegment;
vSegment.clear();
static int nCount = 0;
if( 0 == nCount)
{
    vSegment.reserve(64);
}
++nCount;

 

優化后,提升至2.286s

 

復制代碼代碼如下:

real    0m2.286s
user    0m1.601s
sys     0m0.222s

 

同樣,另外一個類中的成員vector也使用預先分配空間(在構造函數中):

m_vtPipecmd.reserve(256);
優化后,提升至2.166s;

 

復制代碼代碼如下:

real    0m2.166s
user    0m1.396s
sys     0m0.204s

 

函數改寫 && 內聯

繼續執行程序,發現SqToolStrSplitByCh()函數消耗過大,改寫整個函數邏輯,并將改寫后的函數內聯: 
優化后,提升至1.937s

 

復制代碼代碼如下:

real    0m1.937s
user    0m1.301s
sys     0m0.186s

 

去除調試符和優化監測符號

最后,去掉debug和pg調試符號后,最終效果為1.883s;

 

復制代碼代碼如下:

real    0m1.883s
user    0m1.239s
sys     0m0.191s

 

滿足生產要求

以上最后幾步看似毫秒級的提升,擴大到全表數據后,效果就很明顯了; 
優化后,生產上a表為152w,導入耗時大約326s(~6分鐘); 
b表數據420w,導入耗時大約1103s(~18分鐘)

以上所述就是本文的全部內容了,希望大家能夠喜歡。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91中文精品字幕在线视频| 久热精品视频在线免费观看| 成人网欧美在线视频| 午夜精品久久久久久久99热| 欧美日韩在线视频首页| 国产一区二区三区在线| 日韩精品中文字幕视频在线| 庆余年2免费日韩剧观看大牛| 欧美日韩国产综合新一区| 久久成人人人人精品欧| 久久精品夜夜夜夜夜久久| 日韩禁在线播放| 精品国产电影一区| 日韩有码视频在线| 国产精品视频久久| 成人免费网站在线| 亚洲视频在线免费观看| 成人欧美一区二区三区在线湿哒哒| 亚洲国产婷婷香蕉久久久久久| 久久全球大尺度高清视频| 国产不卡一区二区在线播放| 性欧美激情精品| 亚洲国产美女久久久久| 国产精品一区二区三区免费视频| 日韩欧美国产黄色| 亚洲欧洲激情在线| 久久久精品在线| 国产一区二中文字幕在线看| 国产视频在线一区二区| 国产美女精品视频免费观看| 亚洲欧美三级伦理| 怡红院精品视频| 日韩视频在线免费观看| 不卡在线观看电视剧完整版| 九九九热精品免费视频观看网站| 国产精品福利久久久| 伊人成人开心激情综合网| 久久99热精品| 欧美午夜丰满在线18影院| 91精品国产乱码久久久久久久久| 91av视频在线播放| 一本一道久久a久久精品逆3p| 国产亚洲精品91在线| 国产97色在线|日韩| 一区二区欧美在线| 7m第一福利500精品视频| www.99久久热国产日韩欧美.com| 2021久久精品国产99国产精品| 欧美日韩一区二区精品| 欧美黑人性生活视频| 国产精品久久久久久av下载红粉| 精品国产鲁一鲁一区二区张丽| 91av视频在线免费观看| y97精品国产97久久久久久| 成人精品一区二区三区电影免费| 免费97视频在线精品国自产拍| 久久人人爽人人| 久久成人18免费网站| 国产精品久久久久一区二区| 亚洲欧美日韩国产中文| 国产精品美女999| 中文字幕免费精品一区高清| 久久琪琪电影院| 国产精品久久久久免费a∨| 欧美日韩性视频| 欧美成人精品在线| 4438全国亚洲精品在线观看视频| 日韩欧美亚洲一二三区| 激情av一区二区| 色综合视频一区中文字幕| 高清欧美电影在线| 亚洲无线码在线一区观看| 日韩成人在线视频观看| 亚洲一区二区三区在线免费观看| 亚洲国产欧美一区二区三区久久| 国产精彩精品视频| 久久精品亚洲94久久精品| 国产精品com| 国产精品专区一| 色在人av网站天堂精品| 成人激情免费在线| 欧美电影在线观看完整版| 国产精品∨欧美精品v日韩精品| 日韩av电影手机在线观看| 国产精品久久久久久久久粉嫩av| 正在播放亚洲1区| 91亚洲午夜在线| 77777少妇光屁股久久一区| 国产精品吊钟奶在线| 国产不卡精品视男人的天堂| 97在线观看免费高清| 久久91精品国产91久久久| 亚洲精品视频免费| 狠狠躁夜夜躁人人爽超碰91| 欧美壮男野外gaytube| 亚洲日本中文字幕免费在线不卡| 久久久女人电视剧免费播放下载| 日韩精品在线观看一区二区| 亚洲精品网站在线播放gif| 国产视频精品在线| 欧美大码xxxx| 亚洲色图综合久久| 国产精品精品视频一区二区三区| 中文字幕一精品亚洲无线一区| 91久久久久久| 久久精品亚洲热| 欧美黄色片免费观看| 亚洲丁香久久久| 91久久精品国产91久久性色| 亚洲国内高清视频| 亚洲欧美日本另类| 欧美性猛交xxxx久久久| 国产日韩欧美综合| 97色在线视频观看| 777午夜精品福利在线观看| 欧美激情在线狂野欧美精品| 亚洲精品在线不卡| 在线看日韩欧美| 午夜精品一区二区三区在线| 国产亚洲视频中文字幕视频| 欧洲午夜精品久久久| 日韩视频在线一区| 成人黄色在线观看| 国产日韩综合一区二区性色av| 亚洲成人激情在线观看| 中文字幕亚洲欧美日韩在线不卡| 中文字幕精品av| 国产成人在线精品| 国产免费亚洲高清| 欧美国产日韩视频| 欧美视频裸体精品| 久久免费精品日本久久中文字幕| 日韩女优人人人人射在线视频| 91久久嫩草影院一区二区| 国产精品久久久久久久久久免费| 欧美精品激情在线观看| 久久精品电影网站| 91av免费观看91av精品在线| 国产成人涩涩涩视频在线观看| 欧美性少妇18aaaa视频| 国产精品久久综合av爱欲tv| 亚洲第一级黄色片| 九九久久久久久久久激情| 国产成人一区二区三区电影| 国产女同一区二区| 国产成人精品最新| 欧美成人午夜免费视在线看片| 欧美不卡视频一区发布| 久久福利视频网| 按摩亚洲人久久| 久久久久久久久91| 精品一区二区电影| 日韩久久精品电影| 亚洲午夜性刺激影院| 欧美日韩亚洲91| 国产69精品久久久久久| 中文字幕精品www乱入免费视频| 日本一区二区在线免费播放| 日韩美女主播视频| 成人免费视频网址| 欧美日韩国产一区在线| 国产精品69久久| 在线日韩精品视频| 亚洲一区二区在线|