目前我正在运行一些简单的序列化测试。在循环内对几千个对象进行了序列化和反序列化。我注意到这个测试没有使用100%的cpu。谁能解释为什么?
更新
我正在序列化内存,序列化是单线程的。我正在使用标准的.NET二进制序列化和protobuf-net进行比较。
答案 0 :(得分:3)
IO操作使线程运行序列化以阻止 当它被阻止时,其他进程可能会占用CPU时间。
答案 1 :(得分:2)
你有多核处理器吗?因为,如果是这样,序列化将只使用其中一个核,因为它是一个单线程进程。
答案 2 :(得分:1)
也许您有多核CPU且序列化代码是单线程的?
答案 3 :(得分:0)
答案 4 :(得分:0)
CPU的速度更快:
如果要分配数千个对象,则可能正在等待一些页面错误。
如果您正在执行反序列化多线程,则可能存在一些锁定问题。