繁体   English   中英

如何在Windows下以低优先级从Eclipse启动?

[英]How to launch from Eclipse in Low priority under Windows?

我正在运行Eclipse(在Windows上)占用大量CPU时间的程序。 为了避免让整个机器陷入困境,我使用任务管理器将优先级设置为低。 但是,这是一个繁琐的手动过程。 有没有办法Eclipse可以自动设置此优先级?

编辑:我意识到每个特定的启动器(Java,Python等)都有自己的配置方法,所以我将这个问题限制在Java域,这是我最需要的。

我在Windows上遇到同样的问题---启动使用所有CPU的子进程(线程并行作业),但我希望在Windows开发环境中有良好的响应能力。

解决方案 :启动几项工作后:

DOS cmd >> wmic process where name="javaw.exe" CALL setpriority "below normal"

不,这不会影响eclipse.exe进程。

Java解决方案 :将此代码插入到CPU密集型程序中以降低其自身的Windows优先级:

public static void lowerMyProcessPriority() throws IOException {
    String pid = ManagementFactory.getRuntimeMXBean().getName();
    int p = pid.indexOf("@");
    if (p > 0) pid = pid.substring(0,p);
    String cmd = "wmic process where processid=<pid> CALL setpriority".replace("<pid>", pid);
    List<String> ls = new ArrayList<>(Arrays.asList(cmd.split(" ")));
    ls.add("\"below normal\"");
    ProcessBuilder pb = new ProcessBuilder(ls);
    pb.start();
}

是的,经过测试。 适用于Win7。

我假设你使用外部工具启动这些程序。 如果是这样,那么您可以修改launch命令以使用前面描述的start /low hack。 但是,如果这些应用程序具有特殊的启动类型(如Java Application或类似),那么您就遇到了麻烦。 实际改变这一点的唯一方法是破解Eclipse的源代码,找到启动类型以及调度任务的位置,然后将其修改为使用start /low 对不起,但我认为没有一个简单的解决方案。

更好的选择是配置Eclipse将使用的内存量: http//www.eclipsezone.com/eclipse/forums/t61618.html

并为JVM做一个关于-Xmx和-Xms参数的谷歌搜索(你可以为Eclipse中的跑步者配置)。

亲切的问候

我也想这样,奇怪的是,这是不可能的,真的。 我知道你可以设置线程优先级,但我认为在windows-land中,线程都被安排在“内部”进程优先级可以这么说。

我花了一些时间回顾这个问题。 里面有Java中没有方法来降低优先级(据我可以看到),所以你需要使用“开始/分钟”的方式。 我没有尝试让它工作。

相反,我得到了一个多内核处理器。 这为其他东西提供了空间,即使Java程序在一个内核上运行也是如此。

强力推荐。

使用操作系统工具或假的java.exe来捕获eclipse启动程序产生的真正长的javaw.exe命令。

绕过eclipse.exe并直接启动javaw.exe。

一旦你直接和正确地启动javaw.exe。

START / BELOWNORMAL \\ path \\ javaw.exe lot-of-parameters-to-load-workspace

我在Linux中遇到了同样的问题并找到了这个问题: http//tech.stolsvik.com/2010/01/linux-java-thread-priorities-workaround.html

有趣的是关于如何将Java线程优先级转换为OS优先级。 这已经解决了我的问题,它也可能对你有所帮助。

如果只在开发中需要它,你可以将所有其他进程的优先级设置为高...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM