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是创建此线程的原因.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值