代码之家  ›  专栏  ›  技术社区  ›  adum

如何在windows下以低优先级从eclipse启动?

  •  6
  • adum  · 技术社区  · 16 年前

    我正在运行eclipse(在windows上)中占用大量cpu时间的程序。为了避免拖累我的整个机器,我将任务管理器的优先级设置为低。然而,这是一个繁琐的手工过程。Eclipse是否可以自动设置优先级?

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

    8 回复  |  直到 7 年前
        1
  •  3
  •   George Forman    8 年前

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

    解决方案 :启动多个作业后:

    DOS命令>> 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上工作。

        2
  •  2
  •   Daniel Spiewak    16 年前

    我假设您使用外部工具启动这些程序。如果是,则可以修改启动命令以使用 start /low 哈克之前描述过。但是,如果这些应用程序有一个特殊的启动类型(比如Java应用程序或类似的),那么你就有麻烦了。唯一可以改变的方法是打开eclipse的源代码,找到启动类型和它分派任务的位置,然后修改它以使用 开始/低 . 对不起,我认为没有简单的解决办法。

        3
  •  0
  •   marcospereira    16 年前

    更好的替代方案是配置eclipse将使用的内存量: http://www.eclipsezone.com/eclipse/forums/t61618.html

    在google上搜索jvm的-xmx和-xms参数(您可以为其配置 赛跑运动员 在日蚀内部)。

    亲切问候

        4
  •  0
  •   Thorbjørn Ravn Andersen    16 年前

    我花了一段时间来调查这件事。没有办法 里面 Java来降低优先级(就我所见),所以你需要使用“开始/分钟”的方法。我没有试着让它工作。

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

    强烈推荐。

        5
  •  0
  •   sandos    14 年前

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

        6
  •  0
  •   Yon    13 年前

    我在Linux中遇到过同样的问题,并发现: http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workaround.html

    有趣的一点是如何将Java线程优先级转换为OS优先级。这帮我解决了这个问题,也许对你也有帮助。

        7
  •  0
  •   englebart    7 年前

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

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

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

    start/belownormal\path\javaw.exe要加载工作区的许多参数

        8
  •  -4
  •   Martin    14 年前

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