首页   注册   登录
 goodboy95 最近的时间轴更新
goodboy95

goodboy95

V2EX 第 353859 号会员,加入于 2018-10-04 16:03:16 +08:00
今日活跃度排名 7591
求解答一个 Java 运行速度的问题
  •  1   
    Java  •  goodboy95  •  1 天前  •  最后回复来自 goodboy95
    16
    请问一下关于申请短信 api 的问题
    问与答  •  goodboy95  •  68 天前  •  最后回复来自 musi
    12
    goodboy95 最近回复了
    1 天前
    回复了 goodboy95 创建的主题 Java 求解答一个 Java 运行速度的问题
    @warcraft1236 按位取或,写这个的原因纯粹是让循环对外干点事情,防止 java 把 for 循环优化掉。
    1 天前
    回复了 FaiChou 创建的主题 程序员 第一次觉得变量名为中文可以接受
    @wozhihuipinyin 我也不是中文变量的坚定反对者啊,奈何有的时候不写成英文过不了 code review
    1 天前
    回复了 FaiChou 创建的主题 程序员 第一次觉得变量名为中文可以接受
    @bertonzh 我寻思着你也是个程序员了,不应该不知道“过早的优化是万恶之源”这句老话啊
    1 天前
    回复了 FaiChou 创建的主题 程序员 第一次觉得变量名为中文可以接受
    @echoway 我一般都逐词强翻,打造有中国特色的变量名。
    比如说:
    个人当年账户支付数:personalCurrentYearAccountPayment
    医疗费用自费应付总额:medicalFeeForPersonalTotalPayable
    医疗费用自付应付总额:medicalFeePayByPersonalTotalPayable
    我知道这么干很蛋疼,但有时候还真就会这么干……
    1 天前
    回复了 FaiChou 创建的主题 程序员 第一次觉得变量名为中文可以接受
    @xsen 众所周知,写代码只要费劲能读懂就够了,至于易不易读,管他呢。
    我们系统开始由两个人开发,里面涉及了试用员工处理的功能,一个人认为试用的英文是 probation,另一个人认为是 trial,结果真就这么开发下去了。初期 codereview 也看不出问题,后期发现了也只能认了,顶多就是后续的代码统一翻译。
    当然大部分代码规避不了这个问题,但 enum 或者某些极易误解的变量用一下中文降低误解概率,众所周知也是大逆不道的,是连基本英文都没学过的。
    顺便问一下,你在哪个公司招人?我最近在找工作,正好避一下坑。
    2 天前
    回复了 goodboy95 创建的主题 Java 求解答一个 Java 运行速度的问题
    @OysterQAQ 把 n 写成 final 之后,速度确实快了(虽然字节码上看不出什么区别……)
    上面也有人提到 JIT 在里面搞事,我也在看。
    2 天前
    回复了 goodboy95 创建的主题 Java 求解答一个 Java 运行速度的问题
    话说回来,把注释掉的代码加进去,去掉 Date 相关代码和 println 之后,用 javap -c 查看的时候,结果是这样的:
    ```
    public static void main(java.lang.String[]);
    Code:
    0: iconst_0
    1: istore_1
    2: iconst_0
    3: istore_2
    4: iconst_0
    5: istore_3
    6: iload_3
    7: ldc #2 // int 2000000000
    9: if_icmpge 33
    12: bipush 6
    14: istore 4
    16: iload 4
    18: sipush 1346
    21: imul
    22: istore_2
    23: iload_1
    24: iload_2
    25: ior
    26: istore_1
    27: iinc 3, 1
    30: goto 6
    33: return
    ```
    里面把 for 循环完完整整的写了一遍……JVM 的优化也太厉害了点吧……
    2 天前
    回复了 goodboy95 创建的主题 Java 求解答一个 Java 运行速度的问题
    @ak47007 我 java 也是刚学几天,currentTimeMillis 这个之前真不知道……
    之前看网上有人讨论 java 乘法和位运算的速度的时候,就随手写了这段代码。最开始的时候我写的 n = baseNum * 1024,至于 int baseNum = 6;那一行本来我是想之后改成 int baseNum = i 的,先写个常数试试,结果试完之后发现了现在这个奇怪的情况。
    不过 int baseNum = 6;写到外面之后,for 循环里面不管有没有注释都是 600ms 了,难道是因为现在这个代码去掉注释就会把 n 的数值做成常量?
    35 天前
    回复了 zuiye111 创建的主题 MySQL 请教一条 mysql 慢查询问题
    @jnduan where 1=1 猜测是系统的权限模块搞的鬼,因为我们系统就用 where 1=1 或者 1=-1 来控制用户能不能拿到数据……
    43 天前
    回复了 formulahendry 创建的主题 程序员 Visual Studio 支持 Java ?谣言止于智者
    不过现在每次打开 vs2019 新建模板的时候,就能看见可选语言里面有个 java (不过选了 java 之后没有模板可用),微软这是打算吊人胃口么
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2905 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 12ms · UTC 14:45 · PVG 22:45 · LAX 07:45 · JFK 10:45
    ♥ Do have faith in what you're doing.