串行器未使用 100% CPU

发布于 2024-10-01 08:14:27 字数 162 浏览 0 评论 0原文

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

更新

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

Currently I'm running a few simple serialization tests. A few thousand objects are serilaized and deserialized within a loop. I noticed that this test is not using 100% cpu. Could anyone explain why?

UPDATE

I'm serializing into memory, and serialization is singlethreaded. I'm using standard .NET binary serialization and protobuf-net to compare.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

吐个泡泡 2024-10-08 08:14:27

IO 操作使运行序列化的线程阻塞。
当它被阻塞时,其他进程可能会获得 CPU 时间。

IO Operations make the thread running the serialization to block.
While it is blocked, other processes might get CPU time.

━╋う一瞬間旳綻放 2024-10-08 08:14:27

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

Have you got a multi-core processor? Because, if so, serialization will only use one of the cores because it's a single threaded process.

戏舞 2024-10-08 08:14:27

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

Perhaps you have a multicore CPU and the serialization code is single-threaded?

新雨望断虹 2024-10-08 08:14:27
  • 多核/线程CPU?
  • 内存速度开销?
  • 磁盘速度开销?
  • Multi core / thread CPU?
  • Memory speed overhead?
  • Disk speed overhead?
⊕婉儿 2024-10-08 08:14:27

CPU 的速度更快,如下所示:

  • 磁盘(甚至 SSD)
  • 网络
  • RAM/内存

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

如果您正在进行多线程反序列化,可能会出现一些锁定问题。

CPU's are faster as:

  • Disk (even SSD)
  • Network
  • RAM / Memory

If you are allocating thousands of objects, you might be waiting for some page-faults.

If you are doing a de-serialization multithreaded, there might be some locking issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文