gpt4 book ai didi

java - 线程池性能比较: Local vs Remote

转载 作者:行者123 更新时间:2023-11-30 04:47:15 25 4
gpt4 key购买 nike

  • 我有 2 台完全相同的机器(COM1 - COM2),并且都是单核的。
  • 两台机器都运行 couchdb 和 tomcat
  • 我的应用程序通过休息请求查询数据库,并且我实现了 10 个线程池来加快进程。每个线程都有自己的数据库实例。
<小时/>
  • 当我将应用程序设置为使用带有线程池的本地数据库时(war 文件位于 COM1,数据库位于 COM1),30 个查询需要 431.83 毫秒。没有线程池的相同配置需要 823.83 毫秒。
  • 但是,当我将其设置为使用带有线程池的远程数据库时( war 在 COM1 中,数据库在 COM2 中),30 个查询需要 276.52 毫秒。没有线程池的相同配置需要 960.00 毫秒。
<小时/>

我的问题是:

  1. 为什么使用线程池时单核速度会提高?
  2. 为什么远程数据库配置比本地数据库配置快?

谢谢

最佳答案

Why I am getting spead increase in single core when I use thread pool?

线程并不总是在 CPU 上执行操作。有些线程将从磁盘、网络、内存等读取数据,而其他线程可以同时使用 CPU。如果您有一台浓缩咖啡机和一台蒸奶器,那么让两个人制作卡布奇诺会比一个人制作更快。

Why remote database configuration is faster than local one?

如果您的查询是 CPU 密集型的,那么可以想象,手头有两个 CPU 可以获得足够的性能,从而补偿网络延迟的损失。 IE。如果您制作浓缩咖啡需要足够的时间,那么即使您必须爬楼梯,使用下一层的浓缩咖啡机也是有意义的。请注意,如果你只有一个人,那么这样做是没有意义的。这就是为什么该设置花费了 960 毫秒而不是 823 毫秒(即无用的爬楼梯)。

关于java - 线程池性能比较: Local vs Remote,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10701008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com