Serializer不使用100%CPU

时间:2010-11-09 14:31:19

标签: c# performance serialization protocol-buffers

目前我正在运行一些简单的序列化测试。在循环内对几千个对象进行了序列化和反序列化。我注意到这个测试没有使用100%的cpu。谁能解释为什么?

更新

我正在序列化内存,序列化是单线程的。我正在使用标准的.NET二进制序列化和protobuf-net进行比较。

5 个答案:

答案 0 :(得分:3)

IO操作使线程运行序列化以阻止 当它被阻止时,其他进程可能会占用CPU时间。

答案 1 :(得分:2)

你有多核处理器吗?因为,如果是这样,序列化将只使用其中一个核,因为它是一个单线程进程。

答案 2 :(得分:1)

也许您有多核CPU且序列化代码是单线程的?

答案 3 :(得分:0)

  • 多核/线程CPU?
  • 内存速度开销?
  • 磁盘速度开销?

答案 4 :(得分:0)

CPU的速度更快:

  • 磁盘(甚至是SSD)
  • 网络
  • RAM / Memory

如果要分配数千个对象,则可能正在等待一些页面错误。

如果您正在执行反序列化多线程,则可能存在一些锁定问题。