在这个基准测试中,Node的速度有多快?

沙恩

为了学习一些系统编程,我打算尝试在rust中编写一个标记器。尽管我立即发现遍历字符串的char极其缓慢。我整理了一个简单的基准来说明我的意思。

src/bench.html 是一个HTML文档,大约3000个字符

节点:

var input = require('fs').readFileSync('src/bench.html', 'utf8');
var len   = input.length;

for(var i = 0; i < 100; i+=1) run();

function run () {
    var index = 0;
    while (index < len) {
        var c = input.charAt(index);
        // noop
        index++;
    }
}

锈:

use std::error::Error;
use std::fs::File;
use std::io::prelude::*;
use std::path::Path;

fn main() {
    // Create a path to the desired file
    let path = Path::new("src/bench.html");
    let display = path.display();

    // Open the path in read-only mode, returns `io::Result<File>`
    let mut file = match File::open(&path) {
        // The `description` method of `io::Error` returns a string that
        // describes the error
        Err(why) => panic!("couldn't open {}: {}", display,
                                                   Error::description(&why)),
        Ok(file) => file,
    };

    // Read the file contents into a string, returns `io::Result<usize>`
    let mut s     = String::new();

    match file.read_to_string(&mut s) {
        Err(why) => panic!("couldn't read {}: {}", display,
                                                   Error::description(&why)),
        Ok(_) => {
            for x in 1..100 {
                for token in s.chars() {
                    match token {
                        _ => {
                            // noop
                        }
                    }
                }
            }
            println!("done!");
        }
    }
}

有人可以在rust示例中解释我做错了什么,使它比节点中的同一件事慢10倍吗?

所有代码都可以在这里找到https://github.com/shakyShane/rust-vs-node

沙恩

简单的答案,在进行基准测试时,不使用target/debug/program而是cargo build --release运行这将为您target/release/program提供基准测试:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

计算哈希的速度有多快?

来自分类Dev

这个基准测试脚本有什么问题?

来自分类Dev

netstat捕获网络快照的速度有多快?

来自分类Dev

使用 FFT 的卷积速度有多快

来自分类Dev

为什么使用Future的此示例的运行速度没有基准测试快?

来自分类Dev

基准测试时没有互斥锁的多线程速度较慢(ruby 2.0,rails Rails 4.2.7.1)

来自分类Dev

为什么我在这个div中没有滚动?

来自分类Dev

在这个扩展的glob中,(.N)有什么作用?

来自分类Dev

Euler专案-haskell程式码的速度有多快?

来自分类Dev

PC迷如何知道旋转速度有多快?

来自分类Dev

std :: swap用于整数类型的速度有多快?

来自分类Dev

Euler专案-haskell程式码的速度有多快?

来自分类Dev

内核中进程内存测量的更新速度/频率有多快?

来自分类Dev

Ruby中的基准测试方法

来自分类Dev

FreeBSD中的MySQLSlap基准测试

来自分类Dev

'在这个applescript中,行尾不能跟在这个“””之后

来自分类Dev

this.myClick() 在这个 vue js 方法中做了什么,我该如何测试它?

来自分类Dev

为什么这个Clojure微型基准测试这么慢?

来自分类Dev

这个Java基准测试中发生了什么?

来自分类Dev

对这个 Python 代码进行基准测试和加速

来自分类Dev

Linux实用程序基准测试CPU的时钟速度

来自分类Dev

Clearcase签入的速度如此之慢:签入大量已修改文件的速度有多快?

来自分类Dev

Googe Places API 以 8.62 Mbps 下载速度返回结果的速度应该有多快?

来自分类Dev

带有timeit的Python循环基准测试

来自分类Dev

没有XML输入的OptaPlanner基准测试

来自分类Dev

多线程环境中的基准测试

来自分类Dev

防止在Criterion基准测试中缓存计算

来自分类Dev

在Go中绘制基准测试结果

来自分类Dev

BaseX中的基准测试:如何设置

Related 相关文章

  1. 1

    计算哈希的速度有多快?

  2. 2

    这个基准测试脚本有什么问题?

  3. 3

    netstat捕获网络快照的速度有多快?

  4. 4

    使用 FFT 的卷积速度有多快

  5. 5

    为什么使用Future的此示例的运行速度没有基准测试快?

  6. 6

    基准测试时没有互斥锁的多线程速度较慢(ruby 2.0,rails Rails 4.2.7.1)

  7. 7

    为什么我在这个div中没有滚动?

  8. 8

    在这个扩展的glob中,(.N)有什么作用?

  9. 9

    Euler专案-haskell程式码的速度有多快?

  10. 10

    PC迷如何知道旋转速度有多快?

  11. 11

    std :: swap用于整数类型的速度有多快?

  12. 12

    Euler专案-haskell程式码的速度有多快?

  13. 13

    内核中进程内存测量的更新速度/频率有多快?

  14. 14

    Ruby中的基准测试方法

  15. 15

    FreeBSD中的MySQLSlap基准测试

  16. 16

    '在这个applescript中,行尾不能跟在这个“””之后

  17. 17

    this.myClick() 在这个 vue js 方法中做了什么,我该如何测试它?

  18. 18

    为什么这个Clojure微型基准测试这么慢?

  19. 19

    这个Java基准测试中发生了什么?

  20. 20

    对这个 Python 代码进行基准测试和加速

  21. 21

    Linux实用程序基准测试CPU的时钟速度

  22. 22

    Clearcase签入的速度如此之慢:签入大量已修改文件的速度有多快?

  23. 23

    Googe Places API 以 8.62 Mbps 下载速度返回结果的速度应该有多快?

  24. 24

    带有timeit的Python循环基准测试

  25. 25

    没有XML输入的OptaPlanner基准测试

  26. 26

    多线程环境中的基准测试

  27. 27

    防止在Criterion基准测试中缓存计算

  28. 28

    在Go中绘制基准测试结果

  29. 29

    BaseX中的基准测试:如何设置

热门标签

归档