小编use*_*454的帖子

缓存或寄存器 - 哪个更快?

我很抱歉,如果这是一个错误的地方问这个,但我搜索过,总能找到不同的答案.我的问题是:

哪个更快?缓存或CPU寄存器?

根据我的说法,寄存器是直接加载数据来执行它的,而缓存只是CPU内部或内部的存储位置.

以下是我发现的让我困惑的消息来源:

2缓存| 1用于寄存器

http://in.answers.yahoo.com/question/index?qid=20110503030537AAzmDGp

缓存更快.

http://wiki.answers.com/Q/Is_cache_memory_faster_than_CPU_registers

真的是它呢?

memory cpu performance caching cpu-registers

22
推荐指数
2
解决办法
2万
查看次数

在完成端口中调用WSASend()?

你们中的许多人都知道原来的"send()"不会写入你要求它的字节数.您可以轻松地使用指针和循环来确保所有数据都已发送.

但是,我没有看到WSA​​Send()和完成端口在这种情况下是如何工作的.它会立即返回,您无法控制发送的数量(除了您在例程中有权访问的lpLength).这是如何解决的?

您是否需要多次在例程中调用WSASend()以获取所有数据?这看起来不是一个很大的缺点,特别是如果您希望以特定顺序输出数据并且多个线程访问例程?

c++ sockets io networking winsock

3
推荐指数
2
解决办法
2076
查看次数

send()不会传递所有字节?

为什么没有send()winsock您请求的所有字节的保证交货?

这是TCP,它是阻塞套接字.

同样,这种情况发生在非阻塞时.你怎么能保证你发送一切?

我注意到recv()了同样的事情.

c++ networking byte tcp winsock

3
推荐指数
2
解决办法
2387
查看次数

另一种检查std :: queue事件的方法?

好吧,我正在尝试处理某种队列.我有一个IO线程,它专门用于从std :: queue中弹出数据,但问题是我正在使用Sleep()以防止100%cpu常量检查.当然还有其他线程会将项添加到std :: queue.

我怎样才能创建一个事件,以便线程处于休眠状态,并且在std :: queue不为空时才启动?

IO线程

Sleep(100);
while (!myqueue.empty())
  {
     //process data FIFO
     myqueue.pop(); //pop out and continue
  }
Run Code Online (Sandbox Code Playgroud)

非常感谢,谢谢!哦,这对于c ++ 11或c ++ 03来说无关紧要 - 在Windows上.

c++ queue events multithreading std

3
推荐指数
2
解决办法
2696
查看次数

HBITMAP/BITMAP到BITMAPINFOHEADER - >通过网络 - > BITMAPINFOHEADER到HBITMAP/BITMAP

我认为标题非常具有说明性,但这里有更详细的内容,我正在尝试做什么.基本上说我在内存中加载BITMAP.

我想从中提取BITMAPINFOHEADER并将其添加到我的数据包结构中,该结构将通过套接字传输.*

转移它不是问题,但一旦它到达我想把它变回BITMAP,以便我可以使用它.

我一直在努力解决这个问题,而且我一直在搜索高低,没有任何运气.我需要完成此示例和函数列表会很有帮助.

非常感谢.我需要在win32 c ++中使用它.[没有.NET或MFC]赞赏.

c++ winapi structure bitmap

2
推荐指数
1
解决办法
1449
查看次数