亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2421 | 回復(fù): 2
打印 上一主題 下一主題

Icc編譯MySQL性能調(diào)研 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-01-28 19:31 |只看該作者 |倒序?yàn)g覽
本帖最后由 amos613 于 2011-01-29 10:15 編輯

傳統(tǒng)的c/c++編譯器為GNU的gcc/g++,當(dāng)然我們也通常使用gcc/g++來編譯MySQL。但是有研究指出gcc/g++編譯器對c/c++優(yōu)化在某些方面做的并不好。Intel針對自己的處理器特點(diǎn)發(fā)布了編譯器icc。本文希望使用icc編譯得到MySQL,然后通過測試得到icc編譯出的MySQL在性能等方面的特點(diǎn)。

1測試環(huán)境

1.1使用icc編譯器編譯MySQL5.0

在configure前需要通過CC,CXX等變量改變編譯器為icc。具體命令如下:

CC=icc CXX=icpc CFLAGS="-O3 -unroll2  -no-gcc –restrict -fPIC" CXXFLAGS="-O3 -unroll2  -no-gcc –restrict -fPIC" ./configure ……

上述需要注意的是-fPIC參數(shù),如果不添加這個參數(shù),編譯過程中會出現(xiàn)“could not read symbols:bad value”錯誤。

1.2使用icc編譯器編譯MySQL5.1

在編譯mysql5.1時(shí),除了像編譯5.0那樣修改CC,CXX參數(shù)外,還需要修改mysql5.1(5.1.40)mysys/stacktrace.c中的代碼,以避免編譯過程中出現(xiàn)重定義錯誤。該錯誤是由于icc編譯器和gcc編譯支持的代碼特性不同引起的。

char __attribute__ ((weak)) *

my_demangle(const char *mangled_name __attribute__((unused)),

            int *status __attribute__((unused)))

{

  return NULL;

}

改為:

#if defined(__INTEL_COMPILER)

#pragma weak my_demangle=my_demangle_null

char *my_demangle_null(const char *mangled_name, int *status)

{

  return NULL;

}

#else

char __attribute__ ((weak)) *my_demangle(const char *mangled_name, int *status)

{

  return NULL;

}

#endif /* !__INTEL_COMPILER */

1.3測試機(jī)器及環(huán)境

測試機(jī)有4顆CPU,16G內(nèi)存。Icc編譯的mysql和gcc編譯的mysql同時(shí)安裝在這臺機(jī)器上,以避免由于機(jī)器差異而引起的性能差異。兩個mysql的配置文件是相同的,以避免cache等參數(shù)的不同,引起的性能差異。

2正確性測試方法及結(jié)果

2.1正確性測試方法

本節(jié)是驗(yàn)證icc編譯的mysql在程序邏輯和行為上的正確性。測試方法是選取某數(shù)據(jù)庫的數(shù)據(jù)和兩條典型SQL,分別在icc編譯的mysql和gcc編譯的mysql上執(zhí)行。對比它們的輸出來驗(yàn)證:icc編譯的mysql執(zhí)行結(jié)果是否和gcc編譯的mysql的執(zhí)行結(jié)果一致。測試包含對InnoDB和MyISAM兩種引擎的分別測試。測試使用的兩個SQL:

SQL1:select * from tb_customer where urldomain like "%.net" and status=3;

SQL2:update tb_customer set cust_prov=20 where pose_id=178;

針對SQL2,在執(zhí)行完SQL2后,使用“select cust_prov from tb_customer where pose_id=178;”觀察輸出來驗(yàn)證SQL2執(zhí)行的正確性。

2.2正確性測試結(jié)果

下表中的數(shù)據(jù)是相關(guān)測試結(jié)果:

因?yàn)殚L度受限:http://hi.baidu.com/ops_bd/blog/item/c2e2f9496f25ccd9d0c86a59.html

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2011-02-07 10:59 |只看該作者
good,學(xué)習(xí)!

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2011-02-09 10:40 |只看該作者
mysql官方本身有個icc的發(fā)布版,不知道有沒有對比測試過
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP