< 返回版块

mook 发表于 2020-09-02 22:56

Tags:rust, 日报

「AWS」 Bottlerocket – 专为运行容器而打造的基于 Linux 的全新开源操作系统

今天,Amazon Web Services (AWS) 宣布全面推出 Bottlerocket,这是一种专为运行容器而打造的基于 Linux 的全新开源操作系统 (OS)。Bottlerocket 仅包括运行容器所需的软件,并且附带事务更新机制。这些属性使客户能够使用容器协调器以最小的中断来管理操作系统更新,从而提高容器化应用程序的安全性并降低运营成本。AWS 提供的 Bottlerocket 映像适用于 Amazon EKS (GA) 和 Amazon ECS(预览版)。Bottlerocket 是作为 GitHub 上的开源项目开发的。

详情请见-aws-china:https://amazonaws-china.com/cn/about-aws/whats-new/2020/08/announcing-general-availability-of-bottlerocket/

详情请见-Github:https://github.com/bottlerocket-os/bottlerocket

关于 1.46.0 stable 的 "const fn"

关于const fn已经有很多讨论了,这篇文章只是作者个人对问题的所答

那为什么const fn有用呢?一个简单的例子

    // a normal function
    fn foo(n: usize) -> usize {
        n + 1
    }

    fn main() {
        const BAR: usize = foo(5);
        let array = [0_u8; foo(7)];
    }
   // a constant function
    const fn foo(n: usize) -> usize {
        n + 1
    }

更多关于const fn的讨论:https://old.reddit.com/r/rust/comments/ihnnnz/announcing_rust_1460_rust_blog/

详情请见:https://www.reddit.com/r/rust/comments/iksmgk/psa_what_is_const_fn/


From 日报小组 冰山上的 mook

社区学习交流平台订阅:

评论区

写评论
Neutron3529 2020-09-04 20:18

#![const_eval_limit = "83204000"] 这句话少一个0就通不过编译


👇
Neutron3529: const fn慢得我怀疑人生

#![feature(const_eval_limit)]
#![const_eval_limit = "83204000"]
const fn Fib(n:u32)->u32{
    if n>1{
        Fib(n-1)+Fib(n-2)
    }else{
        n
    }
}
fn fib(n:u32)->u32{
    if n>1{
        fib(n-1)+fib(n-2)
    }else{
        n
    }
}
const C:u32=Fib(30);
fn main(){
    for _i in 0..3{
        let t=std::time::Instant::now();
        let d=fib(30);
        println!("{:?}",t.elapsed());
        let t=std::time::Instant::now();
        let e=Fib(30);
        println!("{:?}",t.elapsed());
        let t=std::time::Instant::now();
        const F:u32=Fib(30);
        println!("{:?}",t.elapsed());
        println!("{:?}",(C,d,e,F));
    }
}

直接算6ms(用的还是Debug模式)

然而编译15s...(也是Debug)

const fn 友好得过分了

1 共 1 条评论, 1 页