c语言编程用得上i7,为什么我的C应用程序比Core i7上的C应用程序(使用相同的库)更快...
我有一個用C語言編寫的庫,我有兩個用C和C編寫的應用程序.這個庫是一個通信庫,所以其中一個API調用如下所示:
int source_send( source_t* source,const char* data );
在C應用程序中,代碼執行以下操作:
source_t* source = source_create();
for( int i = 0; i < count; ++i )
source_send( source,"test" );
C應用程序執行此操作的位置:
struct Source
{
Source()
{
_source = source_create();
}
bool send( const std::string& data )
{
source_send( _source,data.c_str() );
}
source_t* _source;
};
int main()
{
Source* source = new Source();
for( int i = 0; i < count; ++i )
source->send( "test" );
}
在英特爾酷睿i7上,C代碼每秒產生的消息幾乎增加了50%.
而在英特爾酷睿2雙核處理器上,它每秒產生的消息數量幾乎完全相同. (核心i7有4個核心,每個核心有2個處理線程)
我很好奇硬件執行什么樣的魔術才能解決這個問題.我有一些理論,但我想我會得到一個真正的答案:)
編輯:評論中的其他信息
編譯器是visual C,所以這是一個windows Box(兩者都是)
通信庫的實現創建了一個新線程來發送消息. source_create是創建此線程的原因.
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的c语言编程用得上i7,为什么我的C应用程序比Core i7上的C应用程序(使用相同的库)更快...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言的非法字符常量,判断C语言数值常量
- 下一篇: c语言用两个栈构造队列伪码,数据结构习题