java - 如何每秒做 n 次?

标签 java performance

假设您必须执行一项要求每秒执行固定次数(比如 20,000)的任务。

你会如何安排 Activity 时间?

最佳答案

对于每秒 20K 次,您需要忙等待下一个间隔。我建议等到下一次它应该运行时消除抖动的影响。

long start = System.nanoTime();
long rate = 20000;
for(long i = 0; ; i++) {

   // do something

   long end = start + i * 1000000000L / rate;
   while(System.nanoTime() < end);
}

您不能使用内置调度程序的原因是最小时间片为 100 微秒,即每秒 10K 次,许多平台上的最小 sleep 时间为 1 毫秒。

关于java - 如何每秒做 n 次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168452/

相关文章:

java - Web服务仅限于单线程?

java - 对求偶数斐波那契数之和的运行时间感到困惑

java - 在 mapToInt 之后调用 map 有什么好处吗?

sql - Oracle 对 View 使用提示索引并强制其到基表

android - Titanium:iPhone 应用程序到 android 的问题

java - 使用 JPA 删除孤儿

java - 保持用户登录 - 使用网络驱动程序保存 cookie

java - 在整个 selenium 套件中使用相同的网络驱动程序

java - 有没有一种简单的方法可以在 Java 中按字母顺序排列字符串枚举?

Python 使 UMAP 更快(呃)