【问题标题】:can we reserve a cpu core for an application?我们可以为应用程序保留一个 cpu 内核吗?
【发布时间】:2015-08-11 10:05:42
【问题描述】:

我有一个 DLL 来管理 pysical 和我的应用程序来引导我的 DLL 和 UI。

管理 pysical 不是问题,而且效果很好。我的用户界面可以使用一些按钮,而且两者都很好用。但是当我添加一个计时器或其他需要刷新的计时器时,我在物理管理中遇到了问题。我想我需要修复 UI 的冲突或刷新 UI 的成本或隔离 UI。

我的应用处于实时模式。

How to reserve a core for one thread on windows? 不是我的问题。

如果我需要为我的应用程序保留一个 cpu 核心(只有一个),而没有任何其他 windows 进程交互到这个核心。我们可以这样做吗?

或者我们可以改变windows默认的负载平衡模式吗? (“实际上操作系统能够对你的内核/处理器进行负载平衡”How Can I Set Processor Affinity in .NET?

或者如何正确隔离我的用户界面?

谢谢!

【问题讨论】:

  • 如果有这样的功能,并且在您的应用程序之前启动的每个应用程序都已经使用它怎么办?目前尚不清楚您为什么需要这个 - 基本要求是什么?如果您的线程很忙,Window 通常不会将它们从正在运行的内核中启动,除非没有空闲的内核可以安排工作。
  • 我想保留一个核心来管理物理交互,而不是 UI,我只想在我的 UI 中刷新计时器,但这会导致一些物理“错误”,没有刷新计时器,我没有任何问题
  • 典型XY problem
  • 这通常不是我推荐的,但是您是否尝试过提高后台线程的优先级?无论如何,这听起来像是发生了其他事情,导致了你暗示的那些打嗝。如果可以的话,你应该把它归结为一个可重现的测试用例。
  • ahah :p 我的 X 问题是管理 pysical,我的 Y 是刷新 UI,仅此而已。我只搜索一个解决方案,或者为什么不使用您的评论寻找一个新的解决方案

标签: c# cpu core


【解决方案1】:

如果我们可以优化 fx 处理器的负载平衡 (https://support.microsoft.com/en-us/kb/2646060) 我们可以停止自动 windows 负载平衡 cpu 吗?

【讨论】:

    【解决方案2】:

    也许将处理器数量更改为 Windows 信息可以强制 Windows 使用一个内核(和其他应用程序)运行?这只是一个想法。

    【讨论】:

    • 这个不行,windows重新加载后恢复正确的cpu号
    【解决方案3】:

    在我的研究过程中,我发现了这些信息:when GC thread kicks in, worker threads will be suspended.

    如何控制 GC ?或者我可以对此有更多的控制权吗?

    我喜欢 Q/R ;) 我在这里看到了如何控制我的GC

    这项改进大大提高了性能。但我想要更多

    【讨论】:

      【解决方案4】:

      在虚拟机中运行此应用程序?所以你可以为它设置所需的硬件并且它不会干扰其他东西?

      【讨论】:

      • 我不能使用虚拟机,它的反应性不够,我使用物理交互进入我们。在虚拟机上,我总是会遇到 Windows 问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-13
      • 2019-03-29
      • 2020-12-30
      • 1970-01-01
      • 2014-08-25
      相关资源
      最近更新 更多