小编use*_*271的帖子

如何在更短的时间内迭代大型 Java 整数列表?

int[] records = job.getTargetSearchIDs();
topology.applyMatcherSearchWeight(records);
int[] mIDs = topology.getMatcherIds();
SystemResponse[] sysResponse = new SystemResponse[mIDs.length];
Map<Integer, SearchCommand> mrCmdsMap = new HashMap<Integer, SearchCommand>();
Run Code Online (Sandbox Code Playgroud)

mID 的长度为 250,记录的长度为 750 万个整数。我希望这个循环在配备 8 核 Intel Xeon X5355 处理器、64 位 Linux (Ubuntu) 和 32 位 Java 的服务器上运行不到 3 秒。

for (long mID : mIDs) {
  List<Integer> recIDsToMatch = new LinkedList<Integer>();
  Matcher matcher = topology.getMatcherById(mID);

  for (long record : records) {
    if (matcher.getRange().isInRange(record))
      recIDsToMatch.add(record);
  }

  if (recIDsToMatch.size() > 0) {
    SearchCommand command = new SearchCommand(job.getMatchParameters(), 
      job.getRequestType(),
      job.getId(),
      job.getMatchParameters().getEngineProperties(), …
Run Code Online (Sandbox Code Playgroud)

java algorithm performance

5
推荐指数
1
解决办法
4263
查看次数

标签 统计

algorithm ×1

java ×1

performance ×1