參考
直接上**和執行結果
#include
#include
#include
using
namespace
std;
const
int kruntime = 1000*1000; // 迴圈次數
const
int kstringlength = 100000; // 字串長度
void createstr(string& str)
std::string getstr(string& str)
std::string getstr2(string& str)
int main()
gettimeofday(&et, null);
cout
<< "use std::move, time:"
<< (et.tv_sec-st.tv_sec)*1000 + (et.tv_usec-st.tv_usec)/1000
<< "ms"
<< endl;
// 從這裡列印mov_str.size = 0我們也可以看到被move的物件不能再被使用,因為其記憶體空間已經被轉移到其他物件。
cout
<< "mov_str.size = "
<< mov_str.size() << endl << endl;
gettimeofday(&st, null);
for(int i = 0; i < kruntime; ++i)
gettimeofday(&et, null);
cout
<< "return directly in function, time:"
<< (et.tv_sec-st.tv_sec)*1000 + (et.tv_usec-st.tv_usec)/1000
<< "ms"
<< endl;
cout
<< "mov_str.size = "
<< mov_str.size() << endl << endl;
gettimeofday(&st, null);
for(int i = 0; i < kruntime; ++i)
gettimeofday(&et, null);
cout
<< "use assgin after function, time:"
<< (et.tv_sec-st.tv_sec)*1000 + (et.tv_usec-st.tv_usec)/1000
<< "ms"
<< endl;
cout
<< "mov_str.size = "
<< mov_str.size() << endl;
return
0;}
test string len = 100000, loop times = 1000000
use std::move, time:57ms
return directly in
function, time:6513ms
use assgin after
function, time:7561ms
在函式內使用std::move返回,函式返回時仍用std::move賦值。
但是某物件在被使用std::move後,不能再正常地使用它。
[1] string move正確用法與效能測試
Matrix效能測試應用
matrix android 當前監控範圍包括 應用安裝包大小,幀率變化,啟動耗時,卡頓,慢方法,sqlite 操作優化,檔案讀寫,記憶體洩漏等等。目前實際接入matrix 0.6.0版本apk checker trace canary apk checker接入相對比較簡單,根據git上介紹,配置...
效能測試應用領域
軟體效能測試過程詳解與案例分析 段念 編著 學習筆記五 能力驗證 乙個典型的能力驗證問題會採用這樣的描述方式 某系統能否在a條件下具有b能力?舉例來說,我們為客戶進行系統上線後的驗收測試,或是作為第三方對乙個已經部署系統的效能進行驗證,都屬於這種效能測試應用領域內的測試 在給定條件下,系統能否具有預...
效能測試應用領域
軟體效能測試過程詳解與案例分析 段念 編著 學習筆記五 能力驗證 乙個典型的能力驗證問題會採用這樣的描述方式 某系統能否在a條件下具有b能力?舉例來說,我們為客戶進行系統上線後的驗收測試,或是作為第三方對乙個已經部署系統的效能進行驗證,都屬於這種效能測試應用領域內的測試 在給定條件下,系統能否具有預...