一个微小的调优去掉嵌套的if,else

简介: 一个微小的调优去掉嵌套的if,else

精简代码


版本一


// 代码的原意是如果存在文件,就判断一个文件中内容有无,没有的话线程睡0.1s, 有的话跳出循环


while(true){
        if(Files.exists(Paths.get("data/mkcert/"+serialNo+".crt"))){
            Path path = Paths.get("data/mkcert/" + serialNo + ".crt");
            File file = new File(String.valueOf(path));
            if (0 == file.length()) {
                Thread.sleep(100);
            }else {
                break;
            }
        }
      }
• 11


版本二


改版是限制在2s 之内 避免上面的程序死循环


int tick = 0;
  while(tick++ < 20){
      if(Files.exists(Paths.get("data/mkcert/"+serialNo+".crt"))){
          File file = new File("data/mkcert/" + serialNo + ".crt");
          if (0 == file.length()) {
              Thread.sleep(100);
          }else {
              break;
          }
      }else {
          Thread.sleep(100);
      }
  }


版本三


改版是限制在2s 之内 反过来,当文件存在并且有内容 跳出循环 否在等待 少用了if嵌套


int tick = 0;
    while(tick++ < 20){
        File file = new File("data/mkcert/" + serialNo + ".crt");
        if(file.exists() && file.length() > 0){
                break;
        }
        Thread.sleep(100);
    }
相关文章
|
6月前
|
自然语言处理 算法 C++
在C++语言中非修正算法
在C++语言中非修正算法
44 1
|
6月前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
23天前
|
存储 编译器 程序员
结构体对齐规则对程序的性能有何影响?
结构体对齐规则是指编译器为了提高内存访问效率,按照特定规则在内存中分配结构体成员的位置。合理的对齐能减少内存访问次数,提升程序运行速度;反之,不当的对齐可能导致内存浪费和性能下降。
|
5月前
|
编译器 测试技术 Linux
技术洞察:循环语句细微差异下的性能探索(测试while(u--);和while(u)u--;的区别)
该文探讨了两种循环语句(`while(u--);` vs. `while(u) u--;`)在性能上的微妙差异。通过实验发现,后者比前者平均执行速度快约20%,原因在于循环条件检查的顺序影响了指令数量。尽管差异可能在多数情况下不显著,但在性能关键的代码中,选择合适的循环结构能优化执行效率。建议开发者在编写循环时考虑编译器优化和效率。未来研究可扩展到不同编译器、优化级别及硬件架构的影响。
|
6月前
|
算法
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
【MFAC】基于紧格式动态线性化的无模型自适应迭代学习控制
|
6月前
|
算法 Go 区块链
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
YOLOD也来啦 | 优化YOLOv5样本匹配,顺带设计了全新的模块
78 0
|
编译器 测试技术 Go
不同写法的性能差异
不同写法的性能差异
67 0
|
JSON C语言 数据格式
【C/C++】防止不必要的局部宏替换
如何避免和防止宏定义在不必要的位置进行替换
224 0
|
编译器 测试技术 Go
不同写法的性能差异(1)
不同写法的性能差异(1)
60 0
|
测试技术 Go
不同写法的性能差异(2)
不同写法的性能差异(2)
67 0