techempower: Web Framework Benchmarks), 而且是选择自己完全手写项目来测试,是因为:生产级别的代码进行对比, 这些代码包括了合理的错误处理, HTTP状态码, JSON序列化, 参数处理等.req/s和延迟指标,作者想要更多的维度指标的对比.例如 CPU, 内存 等等.大量的指标图对比,感兴趣的同学可以查看原文. 作者甚至粗略地计算了他们各自的成本:| Http4k | Ktor | Actix | |
$1.3 |
Rust可以帮你节省不少成本呢!// Style tags will color/format text between the tags.
bunt::println!("I really like {$yellow}lemons{/$}! Like, {$blue+italic}a lot{/$}.");
// To style a single argument, you can also use the `{[style]...}` syntax. This
// can be combined with style tags.
let v = vec![1, 2, 3];
bunt::println!("Here is some data: {[green]:?}. {$bold}Length: {[cyan]}{/$}", v, v.len());
移植 PineTime Watch Face(C to Rust)
lv_obj_t *screen_time_create(home_time_widget_t *ht) {
// Create a label for time (00:00)
lv_obj_t *scr = lv_obj_create(NULL, NULL);
lv_obj_t *label1 = lv_label_create(scr, NULL);
lv_label_set_text(label1, "00:00");
lv_obj_set_width(label1, 240);
lv_obj_set_height(label1, 200);
ht->lv_time = label1;
...
return scr;
}
fn create_widgets(widgets: &mut WatchFaceWidgets) ->LvglResult<()> {
// Create a label for time (00:00)
let scr = widgets.screen;
let label1 = label::create(scr, ptr::null()) ? ;
label::set_text(label1, strn!("00:00")) ? ;
obj::set_width(label1, 240) ? ;
obj::set_height(label1, 200) ? ;
widgets.time_label = label1;
...
Ok(())
}
原文作者:Rust语言中文社区;如有侵权,请联系管理员删除。