InfraPub 为您找到相关结果 14

C++ 20 准备发布 C++ 23 提上议程

根据 Reddit C++ 版块上的信息,C++ 20 已经正式通过委员会草案,这意味着 C++ 20 可以准备发布。“在近期 ISO C++ 委员会会议上,我们完成了 C++ 20 委员会草案,并投票决定将国际标准草案(DIS,Draft International Standard)发送出去,以进行最终批准和发布”。 帖子介绍:“在程序上,DIS 可能会被拒绝,但是由于我们的程序和过程,这种情况极不可能发生。这意味着 C++ 20 已经完成,并将在几个月后发布该标准。” C++ 20 是近十年来影响最大的一个版本,新的特性众多,包括: 模组(Modules)协程(Coroutines) Concepts 的概念范围(range)constexpr支持:new/ delete...阅读全文

博文 2020-02-16 10:46:16 debian.cn

Go 1.8 正式发布 标准库有显著变化和性能提升

今天Go 团队很高兴地宣布Go 1.8发布了。现已提供下载。整个有了显著的性能提升和变化。该版本主要的更新内容如下: Go 1.7中为64位x86引入的编译器后端现在用于所有体系结构,这些体系结构将会有显著的性能改进。例如,我们的基准程序所需的CPU时间在32位ARM系统上减少了20-30%。在此版本中,64位x86系统还有一些性能改进,编译器和链接器更快了,编译时间应该比Go 1.7提高约15%。但是在这一领域还有很长的路要走:我们希望在未来版本中实现更快的编译速度。 垃圾收集暂停时间明显更短,通常在100微秒以下,有时候甚至低至10微秒。 HTTP服务器添加对 HTTP/2 Push的支持,允许服务器抢先发送响应到客户端。这对于通过消除往返行程来最小化网络延迟非常有用。HTTP服...阅读全文

博文 2021-01-28 17:50:22 debian.cn

Go 1.16 即将发布,这些变更你需要知道

-bindata/go-bindata 这类第三方开源库来实现。 而从 Go1.16 起,通过 go:embed 就可以快速实现这个功能: import _ "embed" //go:embed hello.txt var s string print(s) 通过对变量 s 声明 go:embed 指令,使其在编译时读取当前目录下的 hello.txt 文件。 最终变量 s 就会输出 hello.txt 文件中的字符串内容。 新增 io/fs 的支持 新增了 io/fs,正式将文件系统相关的基础接口抽象到了该中。 以前的话大多是在 os 中,这一步抽离更进一步的抽象了文件树的接口。在后续的版本中,大家可以优先考虑使用 io/fs 。 调整切片扩容策略 Go1.16 以前的...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

Go 1.9 的新特性介绍

Go 1.9 beta版已发布, 正式版预期在8月初发布,让我们先来看看你Go 1.9带来了那些新特性。 type alias 类型别名原本在1.8中加入的,但是临时发现有些问题,为了能全面的设计 type alias 被移到了 Go 1.9中了。 这个特性主要用在类型从一个package移动到另外一个package中的时候,导致的项目中对引入的路径不一致导致的问题, 比如原先 context是在golang.org/x/net/context包下,在Go 1.7中菜正式移到context。 相关的issue: go#16339 go#18130 提案: type alias 并发map 在Go 1.6之前, 内置的map类型是部分goroutine安全的,并发的读没有问题,并发的写...阅读全文

博文 2021-01-28 17:50:34 debian.cn

Rust 1.39.0 发布,async/.await 稳定了

: &[u8]) -> usize { slice.len() } 现在可以以更简洁的方式: fn len( #[cfg(windows)] slice: &[u16], // This parameter is used on Windows. #[cfg(not(windows))] slice: &[u8], // Elsewhere, this one is used. ) -> usize { slice.len() } 这里可以使用的属性包括: 条件编译:cfg 和 cfg_attr控制 lint:allow、warn、deny 与 forbid应用于项目的过程宏属性使用的帮助程序属性 这在整个语言生态中提供了一个更具可读性的基于宏的 DSL。 中增加的 const fn 此版本中...阅读全文

博文 2019-11-11 09:44:43 debian.cn

Ruby 2.5.0 稳定版发布

, stringio, strscan, webrick, zlib 从中提升到默认 gem。 升级 Onigmo 到 6.1.3。 添加 缺位运算符。 注意,Ruby 2.4.1 也包含这项改动。 把 bundler 纳入。 更新到 Psych 3.0.2。 更新到 Rubygems 2.7.3。 更新到 RDoc 6.0.1。 词法分析程序由 IRB 更换为 Ripper,极大提升了生成文档的速度。 修正过去这些年存在的缺陷。 支持近些年 Ruby 的新句法。 更新到 Unicode 10.0.0。 Thread.report_on_exception 默认值现为 true,这对调试多线程程序很有帮助。[功能 #14143] IO#write 现接受多个参数 [功能 #9323] 详见...阅读全文

博文 2017-12-25 21:59:41 debian.cn

Go 1.15.7 新鲜出炉:修复安全问题,建议升级

支持。没有其他或 golang.org/x/crypto 软件包支持或使用 P-224 曲线。错误的输出是由 OSS-Fuzz 上运行的椭圆曲线-差分-模糊器项目[1]发现的,并由 Philippe Antoine(Catena cyber)报告。具体 issue:https://github.com/golang/go/issues/43786。Go 一直以来只维护两个主要版本的更新,对于 cmd/go 的问题,应该是之前版本就存在,因此,建议大家升级到最新版本。...阅读全文

博文 2021-01-25 15:15:34 mp.weixin.qq.com

Go 1.10 发布说明草案:预计于 2018 年 2 月发布

。此外,大多数程序运行速度将会更快一些。 核心库 的改动较小,bytes 和 net/url 中的变化最有可能要求对现有的程序进行更新。 总的来说,更新的内容涉及到语言特性、Port、工具、运行时、性能、垃圾收集器以及核心库这些方面,其中主要是对工具的更新。点此查看详细内容 。...阅读全文

博文 2017-11-18 13:59:12 debian.cn

Go 1.12 正式版发布,初步支持 TLS 1.3

关方面的一些改进。其中关于 FreeBSD 和 macOS,Go 1.12 是最后一个支持 FreeBSD 10.x 和 macOS 10.10 Yosemite 的版本。下个版本的 Go 1.13 将要求 FreeBSD 11.2+ 或 FreeBSD 12.0+,对于 macOS,则要求 macOS 10.11 El Capitan 或更新版本。考虑 Go 1 兼容性的前提下,对做了一系列的小改动和更新;… 具体的更新详情可查阅 Go 1.12 发布日志 。下载地址:https://golang.org/dl/...阅读全文

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

。 Netpoll Netpoll 是字节跳动内部的 Golang 高性能、I/O 非阻塞的网络库,专注于 RPC 场景。 RPC 通常有较重的处理逻辑(业务逻辑、编解码),耗时长,不能像 Redis 一样采用串行处理(必须异步)。而 Go 的 net 设计了 BIO(Blocking I/O) 模式的 API,为了保证异步处理,RPC 框架设计上需要为每个连接都分配一个 goroutine,这在空闲连接较多时,产生大量的空闲 goroutine,增加调度开销。此外,net.Conn 没有提供检查连接活性的 API,很难设计出高效的连接池,池中的失效连接无法及时清理,复用低效。开源社区目前缺少专注于 RPC 方案的 Go 网络库。类似的项目如:evio、gnet 等,均面向 Redis、Haproxy...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

Rust 1.37.0 稳定版发布

union 中使用。在 Rust 1.37.0,该属性现在也可以用于枚举定义。例如,如下类型 Align16 将如预期的那样,报告 16 为对齐,而不使用 #[repr(align(16))] 的对齐将为 4: #[repr(align(16))] enum Align16 { Foo { foo: u32 }, Bar { bar: u32 }, } 在枚举上使用 #[repr(align(N))] 的语义与使用该对齐定义包装器结构体 AlignN 一样 ,然后使用 AlignN: #[repr(align(N))] struct AlignN(T); 在 Rust 1.37.0 中,有一些稳定化: BufReader::buffer 和 BufWriter...阅读全文

博文 2019-08-17 21:17:23 debian.cn

Golang Context 探究

在用 Golang 开发过程中,我们一定能在代码里很多函数或方法都会传递 context, 也会经常遇到这样的报错 context deadline exceeded。你有想过或去探究过 context 到底是什么吗,为什么会遇到上述的报错。在这里我们就分析一下 context 是什么及用途。 首选 Golang 中的 context 值得是 context.Context 接口,Golang 在 1.7 版本中引入的接口。context 主要用来在 goroutine 之间传递上下文信息,包括:取消信号、截止时间、key-value 等。 Context 定义 Context 接口定义如下 1 2 3 4 5 6 7 8 9 10 type Context interface...阅读全文

博文 2021-02-25 09:27:27 lxkaka

三个技巧 大幅减少 Docker 镜像体积

? $ docker exec -ti 9d8e97e307d7 sh / # 成功了!现在可以 attach 到正在运行的容器中了。看起来很有希望,但还有一个问题。 Alpine 基础镜像是基于 muslc 的 —— C 语言的一个替代,而大多数 Linux 发行版如 Ubuntu、Debian 和 CentOS 都是基于 glibc 的。这两个库应该实现相同的内核接口。但它们的目的是不一样的: glibc 更常见,速度也更快; muslc 使用较少的空间,并侧重于安全性。 在编译应用程序时,大部分都是针对特定的 libc 进行编译的。如果你要将它们与另一个 libc 一起使用,则必须重新编译它们。 换句话说,基于 Alpine 基础镜像构建容器可能会导致非预期的行为,因为标准 C 库是不一样的。你可...阅读全文

博文 2018-09-06 10:50:29 debian.cn