当我使用 libreoffice calc 处理大表(大约 100 000 行)时,当我对过滤器进行操作时,libreoffice 在计算时会冻结一段时间,并且我在 CPU 使用率中看到它仅使用一个 CPU 核心,容量为 100%,我的 CPU 是第 10 代 i7,有 2x6 核,为什么 libreoffice 没有使用更多核心?
我只遇到了 libreoffice 的问题,例如,virtualbox 在分配给它的 4 个核心的情况下运行良好。(libreoffice 即使在没有同时启动任何其他应用程序的情况下也能做到这一点)
我在 ubuntu 20.04 上,刚刚重新安装了 libreoffice 以确保我拥有最新版本 6.4.4.2。
答案1
显然,过滤任务在单个线程中运行。如果应用程序没有利用更多线程/核心,操作系统就无法并行运行它,你可以拥有尽可能多的核心,但只能使用一个。操作系统可以并行运行独立的应用程序。在应用程序中,应用程序必须确保利用并行计算。有些任务可以并行执行,有些任务需要等待上一个命令的结果,因此它们必须按顺序运行,并且没有办法将其拆分并并行运行。操作系统无法知道应用程序的哪些部分可以并行化。这是应用程序的责任。