我有一个 JDBC 程序,它在一个表中插入大约 50000 行。我有这个程序的 2 个版本。第一个使用一个线程插入 50000 行,而第二个版本使用 5 个线程插入 50000 行(每个线程插入 10000 行)。
现在,当我对这两个程序进行分析时,我发现垃圾收集在使用 5 个线程时占用了更多的 CPU 周期(一个线程为 44256,而 5 个线程为 401836)。Profiler 还告诉我每个程序创建的对象数量几乎相同。
我想知道是什么让 GC 在多线程程序中花费更多周期。两个程序所做的工作是相同的(插入 50000 行),甚至对象的数量也相同。
谢谢马诺伊