在我的应用程序中,我有一个同时由多个线程调用的方法。每个线程在运行时多次调用此方法。如何在多线程应用程序中使用Locale来提高性能
private Locale trLoc = new Locale("tr", "TR");
public double calculate(String arg1){
arg1 = arg1.toUpperCase(trLoc);
...
}
该方法使得一个String.toUpperString(区域)呼叫导致因为Locale类内哈希表的使用的一个瓶颈。每个线程在toUpperCase方法运行时等待另一个线程。这种情况使我的应用程序减慢了三倍。
有什么我失踪的地方使用或我必须使用另一个类为同一目的吗?
在此先感谢。
我很惊讶这样的“功能”之前没有被检测到。我在Google上处理与'ConditionalSpecialCasing'相关的性能问题,结果什么都没有。 –
它只发生在(java.lang.String) 'boolean localeDependent =(lang ==“tr”|| lang ==“az”|| lang ==“lt”);' – sibnick
它可能是值得报告的这[对Oracle](http://bugreport.java.com) - 我会这样做,但我认为如果RFE是由实际遇到问题并可以提供测试用例的人提交,那将是最好的。 –