小编exe*_*ook的帖子

扩展String.prototype性能表明函数调用快了10倍

我想用一些实用方法扩展String对象原型.它起作用了,但性能却低得惊人.将字符串传递给函数比覆盖String.prototype执行相同操作的方法快10倍.为了确保这真的发生,我创建了一个非常简单的count()函数和相应的方法.

(我正在尝试,并创建了该方法的三个不同版本.)

function count(str, char) {
    var n = 0;
    for (var i = 0; i < str.length; i++) if (str[i] == char) n++;
    return n;
}

String.prototype.count = function (char) {
    var n = 0;
    for (var i = 0; i < this.length; i++) if (this[i] == char) n++;
    return n;
}

String.prototype.count_reuse = function (char) {
    return count(this, char)
}

String.prototype.count_var = function (char) {
    var str = this;
    var n = 0;
    for …
Run Code Online (Sandbox Code Playgroud)

javascript performance

6
推荐指数
1
解决办法
751
查看次数

使用 B3 JIT 作为静态编译语言的后端

最近我了解了B3(Bare Bones Backend),这是一个为 WebKit JavaScript 引擎创建的非常快的编译器后端。快得就像它编译得很快一样,比 LLVM(他们以前用过)快 5 倍。我现在正在开发一种 AOT 编译语言,目前可以编译为 C,但我想我会因为编译速度而使用 B3,并且因为我喜欢它的简单性,它的语义与我正在创建的语言类似,它可能比用 C 语言更容易地进行堆栈跟踪(使用#line指令、DWARF 符号信息addr2line),它将是跨平台的(至少声称是 x64 和 ARM)。但是我才开始学习B3,有人可以讨论一下这个后端是否可以用于编译语言吗?我意识到它是在考虑 JIT 的情况下制作的,但它会生成机器代码,对吗?必须做哪些工作才能将生成的代码保存到目标文件中然后进行链接?如果可以的话,如何开始呢?

compiler-construction

6
推荐指数
0
解决办法
359
查看次数

Quartz.net为新手

什么是quartz.net如何开始使用它?

.net asp.net quartz.net

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

5
推荐指数
2
解决办法
254
查看次数

Oracle DB名称和SID是什么意思?

什么是两个Oracle数据库术语之间的关系nameSID

oracle10g

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

CakePHP 1.3变形?

在CakePHP 1.3中放置自定义变形的位置?

php cakephp cakephp-1.3

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

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

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

如何在obj-c中打印格式化的浮点数?

float例如,如何在Objective-C中打印,3.45而不是3.45555555555

floating-point objective-c number-formatting

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

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