- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
ManualResetEventSlim
状态的 MSDN 文档
You can use this class for better performance than
ManualResetEvent
when wait times are expected to be very short.
“很短”有多长?在什么时候使用带有 ManualResetEvent
的内核对象的好处会超过实例化它的开销?
最佳答案
这是我发现的,希望其他人可以验证这一点,但这是我在阅读 Reference Source for ManualResetEventSlim 时发现的
ManualResetEventSlim
它试图根据处理器的数量进行休眠和屈服,并进行极短的休眠——1 毫秒或 0 毫秒,具体取决于其当前的自旋指数。如果时间仍然不够,它将恢复使用 Monitor.Wait
,使用最初传入的超时的新更新版本。
为 Thread.Sleep 传入 0 会释放其时间片。
手动重置事件
它使用 WaitHandle
并调用本地方法来处理指定时间的等待。不幸的是,我看不到它在做什么。
我的结论
“非常短”意味着只有几毫秒。
编辑:我刚刚发现这些有很多信息:
关于c# - ManualResetEventSlim 建议的等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24310551/
假设我们有 MethodA 和 MethodB,其中整个方法的主体都在单个大锁 block 中。两种方法都使用相同的对象进行锁定: lock (objectX) { // methodbody
我想在我的代码中设置不同的 Capybara 等待时间,具体取决于它们通常需要多长时间才能完全加载?我是否必须重复更改 Capybara.default_wait_time 还是有更好的方法? 最佳答
我们的 Graphite 服务器面临 CPU 和磁盘瓶颈。主要问题是 %IO 等待时间始终在 40% 的范围内。我们在具有 7.5 GiB RAM 的 RHEL 服务器上的 2 核 CPU 上运行它。
我正在编写一个自动化测试程序,它将测试一些有时加载某些 AJAX 调用很慢的 Web 程序。例如,用户将单击“查询”,这将导致 15 到 90 秒的 HTML“加载”覆盖。搜索完成后,它将使用结果更新
如果我使用例如“ls -Rlah/”运行以下函数“运行”,我会按预期通过打印语句立即获得输出 import subprocess32 as subprocess def run(command):
如何检查 Linux 机器中进程等待 CPU 的时间? 例如,在加载的系统中我想检查 SQL*Loader 有多长(sqlldr) 进程等待。 如果有一个命令行工具来执行此操作将会很有用。 最佳答案
我正在运行一个多并行文件处理进程(最少 200 个进程),其中每个进程正在读取不同大小(0-50mb)的日志以捕获日志的实时数据。我在 16 个内核上运行我的作业和 8 GB 内存 Linux 机器。
我可以使用哪个 C API 来获取 Linux 上退出的子进程的总磁盘 IO 等待时间(绝对值)? 例如PID 为 1234 的进程运行了 10 秒,并等待 IO 操作完成 3 秒。 背景:我试图找出
我需要一些帮助来计算 bash 脚本的平均 IO 等待时间。 我要运行的脚本非常简单。排序 2 个文件,然后加入。因为我将在大文件上进行测试,所以我需要知道我有多少 IO 瓶颈才能做出一些决定(加入哪
我们在 UNIX 中使用 iostat 在 Unix 中获取所有这些信息。我可以在 Windows 中执行此操作。目前我们使用 typeperf。 最佳答案 还有一个实用程序“logman”。有关此主
我们的 Web 应用程序在高峰时段遇到性能问题,目前该应用程序分为一台 2003 IIS6 Web 服务器和一台 SQL Server 2005 DB 服务器。数据库服务器上的查询时间看起来不错(大约
我是一名优秀的程序员,十分优秀!