【发布时间】:2011-08-23 23:45:00
【问题描述】:
the method getPixelColor(int x,int y) from the Robot class 究竟是如何工作的?我试过这个代码片段:
try
{
Robot robos = new Robot();
}
catch (AWTException e)
{
}
for (int i = 0; i < 100; i++)
robos.getPixelColor(0, 0);
System.out.println("fsadf");
在我的电脑上,这是一个 core 2 duo,执行打印语句需要一秒钟或更短的时间。但是,当我在我的 i3 笔记本电脑上运行相同的代码时,花费的时间要长得多(大约 2-3 秒)。
这背后的原因是什么?它与屏幕质量或类似的东西有关吗?我该如何解决这个问题?
【问题讨论】:
-
执行大约需要 1 秒或更短时间" 智能 VM 可能会意识到循环完全没有(或至少实现)什么,因此将其完全删除。或者换一种说法,可能不是硬件而是虚拟机是不同的。虽然一般点。1)不要执行过早的优化。2)如果代码确实需要优化,不要基于设计决策在这些琐碎的、不相关的测试中。顺便说一句 - AFAIU 代码甚至无法编译,因为
robos超出了循环范围。
标签: java time colors pixel awtrobot