【发布时间】:2014-03-13 16:48:21
【问题描述】:
我用 C 语言重新编写了一部分代码。在使用 getrusage(2) C API 记录资源使用情况来测试它时。
更改代码之前:
user time (ms): 21503
system time (ms): 372
involuntary context switches: 20
更改后:
user time (ms): 25589
system time (ms): 80732
involuntary context switches: 821
我看到很多involuntary context switches 在我重新编写的代码中完成。
我的问题不是关于如何减少上下文切换。但是..
- 当“非自愿上下文切换”更多时会发生什么?
- 它将以何种方式影响系统?
P.S:磁盘上没有任何活动,因为没有写入任何内容。它只是多次ping服务器。
更新:
添加了系统和用户时间。
程序是多线程的。在这两种情况下都会产生相同数量的线程(3k 线程)。只有 C 中的底层 api 被重写。
【问题讨论】:
标签: c++ c linux performance unix