V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iugo
V2EX  ›  程序员

LeetCode 中 JavaScript 的执行速度靠谱吗?

  •  
  •   iugo ·
    iugo · 2018-02-16 15:33:17 +08:00 · 6175 次点击
    这是一个创建于 2471 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在路上无事, 看看 LeetCode.

    感觉 LeetCode 中关于 JavaScript 的测试好随意啊.

    一套代码, 仅把 const 替换为 var 就节省了 100ms 左右的时间. 然后将 let 替换为 var 增加了 50ms 左右的时间.

    我只能这样猜测, 因为 const 会检查变量是否被重新赋值, 所以耗费了额外的时间, 而 let 比 var 作用域更小, 避免作用域外的声明, 所以省了一些时间.

    或许我的猜测只是臆想, 只是对 JavaScript 执行内核(如 V8)不懂造成的. JavaScript 是一种不重视性能的语言, 所以才导致 LeetCode 允许这样的偏差吧.

    9 条回复    2018-02-20 19:03:50 +08:00
    bramblex
        1
    bramblex  
       2018-02-16 16:29:47 +08:00
    js 好歹是第二梯队最快的了好吧,v8 jit 命中的时候是接近 c 艹 速度的……

    你要整天写反优化的代码,c 艹都救不了你
    littlebutt
        2
    littlebutt  
       2018-02-16 16:46:32 +08:00 via iPhone
    自己在浏览器控制台写的代码运行都很快,在 leetcode 就变成 internal error 了
    pkookp8
        3
    pkookp8  
       2018-02-16 16:54:16 +08:00 via Android
    应该不准,可能和服务器以及测试用例有关
    某题用 c 写的,第二天的测试结果比第一天高
    然后看了下排名比我靠前的几个答案,思路也没差多少
    0person
        4
    0person  
       2018-02-16 18:40:30 +08:00 via Android
    leetcode 有 app 么
    brickyang
        5
    brickyang  
       2018-02-16 22:22:20 +08:00 via iPhone   ❤️ 1
    不靠谱,同一段代码点两次提交名次可以出现从 60% 后到 30% 前的波动
    pipapa
        6
    pipapa  
       2018-02-16 23:28:17 +08:00 via Android   ❤️ 1
    leetcode 的评测时间一点都不靠谱,一样的代码差距都挺大
    hazhaz
        7
    hazhaz  
       2018-02-17 11:42:28 +08:00
    最近怎么关于 LC 的主题便多了啊。。。是不是因为有 lccn 啊
    LeoEatle
        8
    LeoEatle  
       2018-02-18 04:14:38 +08:00
    评测时间的确有波动,但是你的算法如果是符合要求的,不可能会 time out。O(logn)的一定比 O(n^2)的容易过
    waiaan
        9
    waiaan  
       2018-02-20 19:03:50 +08:00 via Android
    怎么在上面找 javascript 的题目?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2757 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.