Rust语言,将要流行起来

Rust是一种系统编程语言,由Mozilla开发。它的主要目标是提供安全、并发、高性能的系统编程能力。Rust语言最初的灵感来源于C++,但是它去除了C++中的一些难以处理的特性,比如内存泄漏、数据竞争等,同时也增加了一些新的特性,比如所有权模型、借用模型等。这些特性使得Rust语言能够在系统编程领域中得到广泛的应用,比如网络编程、操作系统开发、游戏开发等。

Rust语言的特点

Rust语言具有以下特点:

1.零成本抽象

Rust语言可以提供高级抽象,而且不需要任何运行时支持。这意味着你可以在不影响性能的情况下使用高级语言特性,比如抽象数据类型、模板、闭包等。

2[……]

查看更多……

2023年达摩院十大科技趋势

多模态预训练大模型:基于多模态的预训练大模型将实现图文音统一知识表示,成为人工智能基础设施。

Chiplet模块化设计封装:Chiplet的互联标准将逐渐统一,重构芯片研发流程。

存算一体:资本和产业双轮驱动,存算一体芯片将在垂直细分领域迎来规模化商用。

云原生安全:安全技术与云紧密结合,打造平台化、智能化的新型安全体系。

软硬融合云计算体系架构:云计算向以CIPU为中心的全新云计算体系架构深度演进,通过软件定义、硬件加速,在保持云上应用开发的高弹性和敏捷性的同时,带来云上应用的全面加速。

端网融合的可预期网络:基于云定义的可预期网络技术,即将从数据中心的局域应用[……]

查看更多……

DMA 与零拷贝技术

内存拷贝是比较耗时操作,零拷贝是常用优化手段,今天分享的文章就是Linux系统零拷贝技术,KafkaMySQL开源组件都用到这个核心技术,希望大家可以掌握。

DMA 与零拷贝技术

注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。

作者:Spongecaptain

原文:https://spongecaptain.cool/SimpleClearFileIO/

1. 数据的四次拷贝与四次上下文切换

很多应用程序在面临客户端请求时,可以等价为进行如下的系统调用:

  1. File.read(file, buf, len);
  2. S[……]

    查看更多……

PM与IPD、CMMI大比拼

无论是项目管理体系,还是IPD、CMMI,它们都不等于管理的全部,就像是“管理从林”中的一棵棵树木。

越来越多的企业开始重视产品开发流程、过程的规范化,借以沉淀企业知识,使其快速面对市场,满足客户需求,进而引入IPD、CMMI、PM等先进的管理方法与工具,但这些管理体系之间的联系与区别却是企业人员经常困惑的热点问题。

基本概念各有所重

PM(Project Management),中文译为“项目管理”,是一套通用的管理技术与方法。近年来,己经被公认为是一种有生命力并能实现复杂的企业目标的良好方法。

IPD,是Integrated Product Development的[……]

查看更多……

破解Gitlab EE

29 JUL 2020 • 2 MIN READ

安装完gitlab ee之后

安装ruby:yum install ruby

ruby版本需要2.3或以上。

生成许可证

gem install gitlab-license
创建一个rb文件

license.rb

生成 GitLabBV.gitlab-license license_key license_key.pub 这三个文件。

使用许可证

用 license_key.pub 文件替换&[……]

查看更多……

键盘扫描码

1.键盘扫描码

键盘上的数据主要以扫描代码的形式出现,这些扫描代码由按键产生或在计算机协议中使用。( 键盘固件在内部使用了不同的代码,并且还存在几 组扫描代码。在本节中,我们仅讨论默认代码-来自转换后的扫描代码集2的默认代码。下面讨论一些不太常见的模式 。)每次按键和释放键会产生0到6个扫描码。

1.1密钥发布

下面我仅提及按键的扫描代码(“ make”)。通过设置高位(加0x80 = 128)可以从中获得密钥释放(“ break”)的扫描代码。因此,Esc印刷机产生扫描码01,Esc释放扫描码81(十六进制)。对于序列,情况相似:键盘-/&nb[……]

查看更多……

在PostgreSQL和Autovacuum内部调优Autovacuum

死元组会损害PostgreSQL数据库的性能,因为它们会继续占用空间并导致膨胀。我们在较早的博客文章中介绍了VACUUM和膨胀但是,现在是时候看看postgres的autovacuum了,以及为维护苛刻的应用程序所需的高性能PostgreSQL数据库而需要了解的内部知识。

什么是自动真空?

Autovacuum是启动PostgreSQL时自动启动的后台实用程序进程之一。如下面的日志所示,pid 2862的postmaster(父PostgreSQL进程)已使用pid 2868启动了autovacuum启动器进程。要启动autovacuum,必须将参数autovacuum设置为ON[……]

查看更多……

pg事务篇(二)—— 事务ID回卷与事务冻结(freeze)

一、 什么是事务ID回卷

前篇文章留下了一个问题,旧事务不应看见新事务修改结果,txid通过比较大小来判断是否可见,任何事务只可见txid<其自身txid的事务修改结果。但txid是无符号的32位整型,它并不是无限的,当42亿数据用尽之后又应该如何判断可见性?

https://blog.csdn.net/Hehuyi_In/article/details/102868231

pg将txid空间视为一个环,若不进行特殊处理,txid到达最大值后又会从3开始分配(0-2保留),如果进行简单的比大小,之前的事务就可以看到这个新事务创建的元组,而新事务不能看到之前事务创建的元组,这违[……]

查看更多……

pg事务篇(一)—— 事务与多版本并发控制MVCC

一、 MVCC常用实现方法

一般MVCC有2种实现方法:

  • 写新数据时,把旧数据快照存入其他位置(如oracle的回滚段、sqlserver的tempdb)。当读数据时,读的是快照的旧数据。
  • 写新数据时,旧数据不删除,直接插入新数据。PostgreSQL就是使用的这种实现方法。

1. PostgreSQL的MVCC实现方式优缺点

优点

  • 无论事务进行了多少操作,事务回滚可以立即完成
  • 数据可以进行很多更新,不必像Oracle和MySQL的Innodb引擎需要保证回滚段不会被用完,也不会经常遇到“ORA-1555”错误的困扰

缺点