我该如何优化以下内容:
final String[] longStringArray = {"1","2","3".....,"9999999"};
String searchingFor = "9999998"
for(String s : longStringArray)
{
if(searchingFor.equals(s))
{
//After 9999998 iterations finally found it
// Do the rest of stuff here (not relevant to the string/array)
}
}
Run Code Online (Sandbox Code Playgroud)
注意:longStringArray每个运行时只搜索一次,并且没有排序,并且每次运行程序时都不同.
我确定有一种方法可以改善最坏情况下的表现,但我似乎无法找到它......
PS也会欣赏一个解决方案,其中数组longStringArray中不存在字符串搜索.
谢谢.
所以基本上问题在标题中描述.服务器以下列方式工作:
服务器代码与本教程类似(一切都在try/catch中,遗憾的是我无法显示源代码 - 公司策略)
它似乎运行得很好,直到客户端数量超过~50,然后它只挂起没有异常/警告/等.有一个cpu线程限制为32k,没有限制打开文件/打开套接字/等等OS = CentOS 5.5(在ubuntu中似乎也是如此).服务器使用ODBC将数据记录到MySQL.两者的单独压力测试表明我可以拥有多达32k的java进程(受/ proc/sys/kernel/threads-max限制),而MySQL可以执行高达20k的简单操作/秒,所以我假设问题在于套接字.
所以问题确实是:
如果满足某个条件,我想退出java进程并在完成正常运行之前释放所有资源.我不想退出JVM,因为我有其他同时运行的java程序.是否return;做到上面,还是有更好的方式来做到这一点?
谢谢.