如何把Go调用C的性能提升10倍? - LinkerLin的个人空间

目前,当Go需要和C/C++代码集成的时候,大家最先想到的肯定是CGO。毕竟是官方的解决方案,而且简单。 但是CGO是非常慢的。因为CGO其实一个桥接器,通过自动生成代码,CGO在保留了C/C++运行时的情况下,搭建了一个桥来沟通C/C++世界和Go的世界。这就意味着,兼容性很好,但是对C的函数的调用,必须先把当前的goroutine挂起,并切换执行栈到当前的线程M的主栈(大小2MB)。如果不做这个操作,那么只能在goroutine的栈上执行C函数调用,可是,goroutine的栈一般都很小,很...阅读全文

OSCHINA 2017-09-06 14:48 OSCHINA

LSM 算法的原理是什么?

其实大家提的 LSM 最开始论文里面都使用树做搜索结构的, 现在在用的都不是严格的树结构了。 如[这篇文章](https://www.igvita.com/2012/02/06/sstable-and-log-structured-storage-leveldb/)解释的一样,从最朴素的角度上来讲可以把`SSTable(sorted string table)`作为一个连续的kv构成的块。SSTable +-+---+----+---+ |k| v | k | v | ... +-+---+--...阅读全文

知乎 2017-03-31 00:00 知乎

LMDB中的mmap、Copy On Write、MVCC深入理解——讲得非常好,常来看看! - bonelee

lmdb创建完env对象,打开时,会做data file和lock file的mmap映射: env->me_lfd = open(lpath, O_RDWR|O_CREAT|MDB_CLOEXEC, mode); void *m = mmap(NULL, rsize, PROT_READ|PROT_WRITE, MAP_SHARED, env->me_lfd, 0); env->me_txns = m; env->me_fd = open(dpath, oflags, mode); env->...阅读全文

博客园 2017-05-24 17:57 博客园

根据拓扑图理解golang的sync.Map工作原理 - 星期八

fizz 153 根据拓扑图理解golang的sync.Map工作原理 golang sync map 源码 拓扑图 发布于 2019-11-08  约 4 分钟 sync.Map的拓扑关系图 读懂关系图需要了解的几个关键点 var expunged = unsafe.Pointer(new(interface{})) type Map struct type readOnly struct type entry struct func (m *Map) Load(key interface{}...阅读全文

SegmentFault 思否 2019-11-08 00:00 SegmentFault 思否 等

HTTP/2 学习笔记

Why HTTP/2HTTP/1.1 是文本协议对用户友好,但对计算机不友好 (parse 不高效)TCP 连接管理TCP 慢启动,因此尽可能的复用连接 (keep-alive)一个 TCP 连接上只能有一个 request/response,可以使用 pipeline 实现并发请求,但会有头部阻塞问题,现代浏览器默认不启用 pipeline,而是通过对一个域名同时建立多个连接 workaround头部 field 重复,造成资源浪费资源没有优先级HTTP/2 特性:HTTP/2 没有改变 HT...阅读全文

SSH原理与运用(二):远程操作与端口转发

接着前一次的文章,继续介绍SSH的用法。 ======================================= SSH原理与运用(二):远程操作与端口转发 作者:阮一峰 (Image credit: Tony Narlock) 七、远程操作 SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。 上一节的操作,就是一个例子:   $ ssh user@host 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id...阅读全文

阮一峰的网络日志 2011-12-23 00:00 阮一峰的网络日志

ssh over socks5:通过socks5 proxy来连接ssh服务器

October 19, 2017 in Tech 最近因为不可描述的原因,我在aws soul的云主机访问不了,ssh、80、ss全部都被禁掉了。 80端口在chrome配置SwitchyOmega就可以了,但ssh不太好办,shell上配置http_proxy对ssh没什么用。 其实ssh自己就支持proxy。 注意这跟在ssh端口转发:远程和本地中介绍过使用ssh作为proxy的方法不同,ssh -D是为了用ssh做proxy,而不是通过proxy来连接ssh服务器。 TL;DR ssh -...阅读全文

ieevee.com 2020-02-15 20:19 ieevee.com

操作系统管理内存的机制——为什么要设置虚拟内存? - wj_hubei

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。 一 早期的内存分配机制         在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作系统是如何为这些程序分配内存的呢?下面通过实例来说明当时的内存分配方法:       某...阅读全文

为什么 MongoDB 使用 B 树?

为什么这么设计(Why's THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同的角度讨论这种设计的优缺点、对具体实现造成的影响。如果你有想要了解的问题,可以在文章下面留言。我们在这一系列前面的文章曾经分析过 为什么 MySQL 使用 B+ 树,有读者在文章下面留言,希望能出一个为什么 MongoDB 使用 B 树的对比文章,这是一个比较好的问题,MySQL 和 MongoDB 两种不同类型的数据库使用了相似却不同的数据结构...阅读全文

mp.weixin.qq.com 2019-01-01 00:00 mp.weixin.qq.co 等

CORNERSTONE问卷调查功能在疫情健康上报需求下的应用方案

严峻的疫情当前,企业复工在即,及时了解、跟踪和统计员工的健康状况,对于企业正常经营来说是至关重要的,如何准确、高效的完成信息收集工作是HR面临的巨大挑战。 [CORNERSTONE](https://www.cornerstone365.cn/)团队根据客户需求加速功能升级,全力免费支持疫情信息收集统计工作,紧急上线了“问卷调查功能”,急客户之所急,想客户之所想,需客户之所需。通过工作台首页“问卷调查”的功能就可以很好的帮助到大家及时掌握相关数据情况,第一时间防止病毒的蔓延。 ...阅读全文

java技术圈 2020-02-14 14:20:01 CORNERSTONE

「疫情」之下,2020或为中国远程办公“元年”

2020年注定是不平凡的一年,突出其来的新型肺炎疫情牵动着所有人的心,除了关注疫情、做好防控之外,还有一个值得关注的问题,节后怎么上班?如何能保持高效的工作状态,如何确保沟通无障碍? 为了遏制疫情蔓延,做好防控工作,在1月26日发出了通知,延长2020年春节假期至2月2日,多地政府也发出延时开工通知,鼓励企业人员在家办公。特殊时期,远程办公便成了个人和企业当下的必要之选。很多缺乏线上办公经验的企业,开始咨询各种远程办公的产品和服务。据悉,1月25日,华为云旗下的WeLink宣布免费...阅读全文

java技术圈 2020-02-12 14:15:20 CORNERSTONE

基于CORNERSTONE的销售管理之道

由于所销售的产品性质、所具有的销售规模、所形成的销售团队组织形式等各不相同,不同的公司对销售管理信息系统有着不同的需求。 一般常见的公司销售结构为:销售总监-销售经理-销售主管-销售业务员。事实表明,在销售队伍规模较小的情况下,依靠传统的管理模式,销售系统可以维持正常运转。而一旦业务发展,销售地域扩大,销售队伍增大,销售经理们就会发现越来越难以控制、掌握整个销售流程。困难来自于需要管理和控制的各种销售信息的爆炸式增长。 而[CORNERSTONE](https://w...阅读全文

java技术圈 2020-02-11 13:43:22 CORNERSTONE

Flink Slot详解与Job Execution Graph优化 - 个人文章

TalkingData 440 Flink Slot详解与Job Execution Graph优化 flink  阅读约 18 分钟 前言 近期将Flink Job从Standalone迁移至了OnYarn,随后发现Job性能较之前有所降低:迁移前有8.3W+/S的数据消费速度,迁移到Yarn后分配同样的资源但消费速度降为7.8W+/S,且较之前的消费速度有轻微的抖动。经过原因分析和测试验证,最终采用了在保持分配给Job的资源不变的情况下将总Container数量减半、每个Container持...阅读全文

SegmentFault 思否 2019-08-06 00:00 SegmentFault 思否 等

项目管理软件的应用现状与发展趋势

企业信息化是企业高效运行的基础。如何达到高效的目的跟管理软件的选型分不开。管理软件以企业管理需求为基础,以IT技术为支撑,为企业提供数据信息的综合管理办法。 随着项目管理思想逐步被接受,市面上涌现出越来越多的管理软件出现在公众的面前,如雨后春笋般层出不穷,一时间“管理软件”名声大噪。市场反响较好的有[CORNERSTONE](https://www.cornerstone365.cn/),一款软件聚合多种功能 , 全流程帮助各大企业管理整个项目生命周期。 ![aeef399ffa80...阅读全文

java技术圈 2020-01-15 15:32:20 CORNERSTONE

敏捷实践经验分享,企业如何在敏捷开发中实施DoD

一、什么是DoD? 当你有两个或更多的人参与同一个事情的时候,我们的“团队”就产生了,这时我们最重要的事情,就是要设定和统一团队的期望值,在本文中,这就是“完成标准”。 一个迭代做完后,团队要进行验收,来决定本个迭代是否完成。但每个团队对于是否完成无法达成统一,有的认为编码完成,就表示任务完成了;有的认为还需要简单自测一下,确保功能可以正常使用;还有的认为需要把自动化用例写完并测试通过才算完成。 为了避免这个问题,在敏捷软件开发中,常用Definit...阅读全文

java技术圈 2020-01-10 14:18:37 CORNERSTONE

项目管理最佳实践,企业如何进行有效的项目管理

前言:企业在划分项目时,可按照项目的复杂程度、管理范围等将项目分为三个级别,分别是企业级、部门级和小组级(与目标划分原则相同),然后将每一级的目标与项目对应起来。我们知道,企业制定的目标(OKR),一个目标(O)会有多个关键结果(KR),关键结果是衡量目标完成与否的标准,因此,每个项目的目标对应的应该是目标中的关键结果,当然,目标及关键结果的复杂程度不同,所以一个关键结果可能会对应多个项目。![image.png](https://img-blog.csdnimg.cn/202001071644...阅读全文

java技术圈 2020-01-08 16:04:24 CORNERSTONE

Scrum与OKR融合实践经验分享

很多软件公司的研发团队都喜欢用Scrum管理研发流程,Scrum是一个诞生于20世纪90年代的敏捷方法论,CORNERSTONE内部也一直在使用这一方法。 相较于瀑布式开发的其他传统方法,Scrum最大的优点是关注持续快速迭代以及对变化的适应性。如果使用瀑布式开发,在项目一开始就要确定项目结果,并且要对此达成一致,通常还要有详细的计划和项目规范。项目计划是从这些规范中产生的,通过以项目在未来的完成情况为出发点,向后推进,以线形的方式规划出时间、预算和各阶段的联系性。 ...阅读全文

java技术圈 2019-12-30 16:59:14 CORNERSTONE

聊聊 TCP 长连接和心跳那些事 | 徐靖峰

前言可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次握手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳问题,做一个统一的整理。 在 Java 中,使用 TCP 通信,大概率会涉及到 Socket、Netty,本文将借用它们的一些 API 和设置参数来辅助介绍。 长连接与短连...阅读全文

个人博客 2019-01-06 00:00 个人博客

如何制定OKR,打造高绩效团队?

避免OKR制定的误区 根据目标达成一致的结果,制定明确、有效的OKR可以推动团队实现伟大目标,并使组织关注最重要的优先事项。写得不好的OKR可能导致策略混乱,破坏内部指标,并导致团队专注于维持现状而非突破现状。 ![image.png](https://img-blog.csdnimg.cn/20191217164400747.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,te...阅读全文

java技术圈 2019-12-18 17:08:05 CORNERSTONE