Java 小程序中调用getFontMetrics()
需要 5000 毫秒到 22000 毫秒才能返回!后续调用似乎花费的时间可以忽略不计(0-16ms)
不得不承认我正在运行一台带有裸露图形驱动程序的机器(显卡坏了,所以我无法使用 Nvidia 驱动程序),但是,这似乎是对一个原本简单的小程序的天文数字性能打击!
有没有人知道可能导致这种情况的原因是什么?我在stackoveflow上遇到了其他具有相同问题但似乎没有令人满意的答案的例子。我在 eclipse 中运行它,但在 IE、Mozilla 和 Chrome 中运行会产生相同的延迟。
SSCCE根据要求:
import java.applet.Applet;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
public class fontProblems extends Applet{
Graphics2D g;
FontMetrics fm;
Font font=new Font("Roman", Font.BOLD, 36);
public void paint(Graphics g2){
g = (Graphics2D) g2;
fm = g.getFontMetrics(font);
}
}
根据文档 (http://docs.oracle.com/javase/7/docs/api/java/awt/Font.html),AWT 组件只能使用逻辑字体。将字体更改为"SansSerif"为我解决了这个问题。