InfraPub 为您找到相关结果 683

Postgres 10 开发者新特性

目前非常流行的RDBMS PostgresSQL已经在几周前发布了它的第10个版本。由于Postgres的可靠性、节约成本、成熟,当然还有它的开,已经21岁的Postgres在开发者之中仍旧非常流行。 Postgres 10带来了一些新特性,其中一些特性另开发者感到十分兴奋。10Clouds在博客中详细介绍了其中的一些特性。通过消除主表(master table)中触发器(trigger)的需求,本地分区(native partitioning)现在变得更简单了。这意味着创建分区表将变得更简单,并且从开发者的角度来看,现在从分区数据表中进行查询和插入与在非分区的数据表进行这些操作是完全一致的。 多列统计(multicolumn statistics)是Postgres 10的另一项改进...阅读全文

博文 2017-12-30 11:46:16 debian.cn

CCPA vs. GDPR:欧美这两部个人数据保护法有什么差异?

际公法管辖:比如设立于欧盟以外的欧盟国家使馆或领事馆。 2.1.2 EDPB对GDPR管辖原则的解释 上述关于管辖的规定较为复杂,且很多概念界定不明确,EDPB颁布了更加简明快捷的管辖判定标准[8]:即第3条第1款规定的“经营场所”(establishment)标准,及第3条第2款规定的“目标指向”(targeting)标准。适用“经营场所”标准需要确定: (1)企业在欧盟是否有经营场所; (2)数据处理活动是否是该“经营场所”之下的活动场景。(如美国企业要求美国本土员工的信息全监控软件,如果在员工短期赴欧期间仍然监控其个人数据,则该监控行为属于企业在美国境内经营场所活动场景下的行为,不受欧盟GDPR的管控)。而且,GDPR第3条第1款意味着对于在欧盟境内设立的企业组织机构...阅读全文

域名与商标: 如何防止域名被仲裁

域名,是用以简化记录服务器IP地址的马夹,所以,域名只有通过解析到具体的IP地址才能访问网站,就相当于给IP地址穿上的一件马夹,避免我们去记那一长串的数字。可以说,域名的价值是依托于服务器的,没有域名的服务器,可以用IP地址访问,而不解析的域名,就仅仅只是一串字符而已。 商标,是用以区分商品(或服务)来的一种显著标志,不同公司提供的相同商品,对于大众而言,商品上印刷的标志,代表的就是不同公司。商标的价值,是依托于产品和公司的。 由这一点来看,商标和域名是有其相似性的,广义上来说,它们都是一种指代的符号而已。 但是,域名由于其技术特性,它是虚拟的和全球唯一的,同样的域名不可能同时被两个人注册,它遵循着先注先得的原则,而商标,则允许在不同领域,由不同的人持有相同的商标,比如中国的“中华...阅读全文

博文 2019-01-18 14:59:59 debian.cn

“Debian 章程有毒” - OSCHINA

人物的上门,也让 Joey 觉得非常不可思议。 年轻时的 Joey Hess 穿着 Debian 文化衫 可惜的是,1997年12月,Bruce Perens 就从 Debian 当家的位置退了下来,与另一位声名显赫的人物 Eric Raymond 一起创立了 OSI (Open Source Initiative),成为了开的开拓者。 当时,Debian 社区内有一些争议声音表示,Bruce Perens 是个独裁者,一手包揽了所有事情。因此,Bruce Perens 离开之后,Debian 开始制定 Debian 章程(Debian Constitution),来制约领导人的权利。 2014年,针对是否采用 systemd 这种 init 进程,Debian 内部开始一场持久且激烈的争...阅读全文

博文 2021-12-06 13:55:33 中文开源技术交流社区

nsenter 及 Linux命名空间 简介

); /* Get file descriptor for namespace */ if (fd == -1) errExit("open"); if (setns(fd, 0) == -1) /* Join that namespace */ errExit("setns"); execvp(argv[2], &argv[2]); /* Execute a command in namespace */ errExit("execvp"); } 使用示例: ./ns_exec /proc/3550/ns/uts /bin/bash nsenter 那么,最后就是nsenter了,nsenter相当于在setns的示例程序之上做了一层封,使我们无需指定命名空间的文件描述符,而是指定进程号即可。 指定进程...阅读全文

博文 2020-12-15 11:22:44 debian.cn

Kafka生产问题总结以及性能优化

一 Kafka可视化管理工具kafka-manager 及基本使用可参考:https://www.cnblogs.com/dadonggg/p/8205302.html 二 线上环境规划 JVM参数设置 kafka是scala语言开发,运行在JVM上,需要对JVM参数合理设置,参看JVM调优专题 修改bin/kafka-start-server.sh中的jvm设置,假设机器是32G内存,可以如下设置: export KAFKA_HEAP_OPTS="-Xmx16G -Xms16G -Xmn10G -XX:MetaspaceSize=256M -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=16M" 这种大内存的情况一般...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

GlusterFS 和 Ceph 比比看

GlusterFS 与 Ceph 哪个更快已经进行了几项测试,但迄今为止没有确切的结论。GlusterFS 存储算法更快,并且由于 GlusterFS 以砖组织存储的方式实现了更多的分层,这在某些场景下(特别是使用非优化 Ceph 的话)可能导致更快的速度。另一方面,Ceph 提供了足够的定制功能来使其与 GlusterFS 一样快——结果是两者的性能都不够令人信服一个比另一个更强。 然而,现实表明,Ceph 访问存储的不同方法使其成为更流行的技术。事实证明,更多的公司正在考虑 Ceph 技术而不是GlusterFS,而且 GlusterFS 仍然与 Red Hat 密切相关。例如,SUSE 还没有 GlusterFS 的商业实现,而 Ceph 已经被开社区广泛采用,市场上有各种不同的产品。可以说...阅读全文

博文 2017-08-09 10:35:29 debian.cn

Facebook 是如何进行大规模代码部署的

布。这种分离带来了挑战,包括维护向下兼容性。 由于工具和部署选项的性质,移动持续部署面临着一些特定的挑战。Web 部署则更为容易,因为 Facebook 拥有完整的技术栈和工具。为了解决这些挑战,Facebook 已经构建了一些专注于更快的移动开发的工具和库,包括 Buck 、Phabricator、 Infer、 React 以及 Nuclide 。Facebook 的移动部署是以三层来并发运行。 • 构建:合并到移动主分支上的所有代码都会进行构建,这会针对受影响的所有产品(Instagram、Messenger)并且会跨各种芯片架构。 • 静态代码分析:Linters 和静态分析工具的组合,称为 Infer ,用于检查各种问题,包括资泄漏、未使用的变量、有风险的系统调用和编码准则违规...阅读全文

博文 2017-10-31 14:05:20 debian.cn

2017 热门开源自动化测试框架优缺点对比

。 优点: 启动和测试执行速度快。 自带断言和注释。 支持并行测试。 支持测试驱动开发(TDD)。 缺点: 非跨平台,仅适用于 .Net 语言。 未集成到 Visual Studio echo 系统中,意味着使用它需要更多的维护。 一个很好的 C#开单元测试框架,历史悠久,口碑较高。 不过,如果你正准备使用 .NET 语言,也可以考虑 MSTest 。 5. TestNG TestNG 是一个 Java 自动化测试框架,受 JUnit 和 NUnit 的启发,但又改进和新增了一些功能。旨在涵盖所有自动化测试类别:单元测试、功能测试、端到端、集成测试等。 优点: 容易整合到 maven 循环中。 使开发人员能够编写灵活而强大的测试。 支持数据驱动测试(DDT)。 注释很容易理解。 测试用例可以轻...阅读全文

博文 2017-11-15 08:52:47 debian.cn

Prometheus 常用 PromQL 语句样例

PromQL 是 Prometheus 提供的一个函数式的表达式语言,可以使用户实时地查找和聚合时间序列数据。表达式计算结果可以在图表中展示,也可以在 Prometheus表达式浏览器中以表格形式展示,或者作为数据,以 HTTP API 的方式提供给外部系统使用。PromQL 虽然以 QL 结尾,但是它不是类似 SQL 的语言,因为在时间序列上执行计算类型时,SQL 语言相对缺乏表达能力。而 PromQL 语言表达能力非常丰富,可以使用标签进行任意聚合,还可以使用标签将不同的标签连接到一起进行算术运算操作。内置了时间和数学等很多函数可以使用 选择序列选择指定指标名称的序列最新样本: my_metric_name选择指定指标名称序列5分钟的样本范围: my_metric_name[5m]筛...阅读全文

博文 2021-02-09 11:07:15 51CTO博客

AWS省钱攻略:预留实例怎么玩

m5.4xlarge的标准RI以进行匹配? 这种场景下您的两个 RI 能够匹配到 m5.4xlarge 实例费用的75%,并且您只需再购买一个 m5.xlarge 的标准RI,这样就可以完全匹配,您无需重新购买m5.4xlarge的RI。 合并拆分 场景:具有 license 的操作系统,比如 Windows、RHEL;可用区RI 既然大小灵活性匹配这么方便那么我们为什么要进行合并拆分呢,这里要提醒的是,大小灵活性匹配只适用于开的免费的OS如Linux/Unix平台的RI,如果我们是需要license的OS 如windows的RI则不适用,另外,如果我们购买可用区范围RI,那么我们也将失去大小灵活性匹配优势,这时候RI合并拆分就派上用场了,废话不多说,直接上例子: 场景三:假设您在新加坡区域购买了两个...阅读全文

博文 2019-08-18 18:26:19 debian.cn

取代TCP:工程师宣布QUIC协议已完成RFC 9000发布

IETF 和互联网生态系统而言,这都是一件大喜事。近年来,QUIC 一直是 IETF 最引人瞩目的活动之一。作为搜索巨头 Google 发起的一项实验,其已经历了五年时间的发展,期间举办了 26 场面对面会议、商议了 1749 次问题、以及成千上万封的邮件沟通。在 IETF 标准的开发协作与迭代流程指导下,QUIC 协议跨越了传统上孤立的传输、全和应用程序空间,且在审议期间引发了热烈的讨论,最终顺利过渡并达成了广泛的共识。考虑到互联网传输生态系统已经僵化了几十年,而 QUIC 将能够通过加密、版本控制、后续可建立的更丰富的技术、以及高性能服务来摆脱这种尴尬的僵化局面。QUIC 已经做好了引领下一代互联网创新的准备,且开始通过不可靠数据报之类的扩展,为实时媒体和其它不需要完全可靠传输服务的应用程序...阅读全文

Golang 面试题搜集

/blob/master/question/q007.md) - [语法题目二](https://github.com/lifei6671/interview-go/blob/master/question/q008.md) - [goroutine和channel使用一](https://github.com/lifei6671/interview-go/blob/master/question/q009.md) - [实现阻塞读的并发全Map](https://github.com/lifei6671/interview-go/blob/master/question/q010.md) - [高并发下的锁与map读写问题](https://github.com/lifei6671...阅读全文

GitHub 发布10月21日系统故障分析报告

都包含了其它数据中心中不存在的写入,因此无法全地将主要数据库故障转移到美国东海岸数据中心。 GitHub 工程师发现问题后进行了一系列抢救措施,“最终没有用户数据丢失,但是,几秒钟的数据库写入的手动协调仍在进行中。” GitHub 对所有受影响的用户表示歉意,并表示“我们已经吸取了教训,并且采取了一系列急救措施,我们希望更好地确保不再发生类似情况。” 同时 GitHub 也表示接下来将解决由此导致的数据不一致问题。详细分析与事件时间线请查阅 GitHub 公告。...阅读全文

MySQL 8 第一个正式版发布:更好的性能

JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。 9. 可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。 10. 高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。 11. 全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度...阅读全文

博文 2018-04-20 10:40:18 debian.cn

不可变基础设施 (immutable infrastructure) - 云原生定义解析

Your Code: Immutable Infrastructure and Disposable Components”, Chad Fowler, 2013“Phoenix Server”, Martin Fowler, 2012不可变基础设施里的“不可变”非常类似于程序设计中的“不可变”概念。程序设计中不可变变量(Immutable Variable)就是在完成赋值后就不能发生更改,只能创建新的来整体替换旧的。由于具有这样的特性这种变量可以在并发环境下全的使用。对于基础设施的不可变性,最基本的就是指运行服务的服务器在完成部署后,就不在进行更改。在过去依赖传统的高可靠性基础设施的时代,服务的可靠性依赖于高可靠性的服务器。然而,这些基础设施具有很高的拥有成本,并且初始化,配置的成本也非常高...阅读全文

理解 Linux 的虚拟内存

有些矛盾。于是翻一下资料重新整理一下这些知识,希望下次在用到它们时能更顺畅。转载随意,请注明来,文章持续修订。 由来 虚拟内存 毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一。我想主要是由于内存的重要”战略地位”。CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢。于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方。 而在现代操作系统中,多任务已是标配。多任务并行,大大提升了 CPU 利用率,但却引出了多个进程对内存操作的冲突问题,虚拟内存概念的提出就是为了解决这个问题。 虚拟内存简单直观的解释 操作系统有一块物理内存(中间的部分),有两个进程(实际会更多)P1 和 P2,操作系统偷偷地分别告诉 P1 和 P2,我的整个内存...阅读全文

博文 2018-11-25 11:03:49 debian.cn

C++ 夺冠!成为 TIOBE 2022 年度编程语言

Swift 语言,其使用率出现明显上涨,从上个月的第 15 位跃升至第 11 位。 与此同时,在性能方面表现良好、被外界视为全的编程语言,Rust 继上个月进入榜单前 20 位之后,这个月提升了两个位次。回看一年前,它还排在第 26 位,现如今在亚马逊、微软、Google 等公司的推动下,Rust 的增长也在情理之中。 有前途的语言:Kotlin、Julia、Dart 在更多的编程语言中,还有一些值得关注的变化: Lua 可以调用 C 语言函数而闻名,其位置从上月的第 30 位上升到本月的 24 位; F# 的发展有些出乎意外,一年前,它排在第 74 位,一年后,它到了第 33 位; 另外,TIOBE 还盘点出了三种非常有前景的语言,包括 Kotlin、Julia 和 Dart,不过,他们想要进入...阅读全文

博文 2023-01-10 06:42:12 CSDN博客

Twitter确认接受440亿美元收购提议 埃隆·马斯克将完全控制该公司

他首次披露他在Twitter的9.2%股份时,他就创建一个"编辑"按钮向Twitter用户进行了调查,而实际上Twitter已经在开发这个按钮。他后来还建议取消Twitter Blue的广告并降低其订阅价格,并增加狗狗币作为支付选项。 马斯克一直直言不讳地批评Twitter的内容管制,称自己是一个"言论自由的绝对主义者",并对该平台在他的控制下如何节制表示担忧。"马斯克在TED 2022期间接受克里斯-德森的采访时说:"人们有一个现实和认知,即他们能够在法律的范围内自由发言,这一点非常重要。我认为从广义上讲,我们越是能增加对Twitter这个公共平台的信任,文明受损的风险就越小。" 马斯克最初在4月13日提出以每股54.20美元的价格收购Twitter。该提议是在马斯克披露收购...阅读全文

团队激励的八大方法,让你的团队成员更加高效地达成目标

,实现目标。激励作用=目标意义×实现可能性从这一公式中可以明确地看出,目标意义和实现的可能性越大,激励作用也越大,反之亦然。目标的设置必须具有可行性,这不仅可以使目标发挥最大的激励作用,还有利于具体目标与长远目标的实现,以及个人目标与团队目标的有机结合。2、集体荣誉激励法集体荣誉激励法是指团队各级领导者在实际工作中,通过多表扬、奖励集体来激发下属的集体意识,使每个团队成员产生一种强烈的荣誉感、责任感和归属感,从而形成一种自觉维护集体荣誉的向心力的办法。3、情感激励法每个人都需要关怀与体贴。一句亲切的问候,一番慰的话语,都会成为激励人们行为的动力。通常来说,团队成员工作热情的高低,同领导与员工感情的亲疏成正比。团队领导可以和员工经常沟通,内容可以是家庭、生活、婚姻、生产、娱乐、工作等,相互交流...阅读全文

深入学习golang — channel

. process(r) // May take a long time. <-sem // Done; enable next request to run. } func Serve(queue chan *Request) { for { req := <-queue go handle(req) // Don't wait for handle to finish. } } 我们通过引入sem channel,限制了同时最多只有MaxOutstanding个goroutine运行。但是,上面的做法,只是限制了运行的goroutine的数量,并没有限制goroutine的生成数量。如果请求到来的速度过快,会导致产生大量的goroutine,这会导致系统资消耗完全。 为此,我们有必要限制...阅读全文

博文 2021-01-25 12:39:17 博客园

深入了解Docker背后的namespace技术

口,这样你的容器将拥有它自己的桥接ip地址,通常是docker0。接下来,我们不再继续讲述如何在namespace接口。相关内容将在另一篇文章中讲述。 MNT Namespace mount namespace可以让看到系统中所有挂载点在某个范围下的目录视图。人们经常把它和在chroot中禁锢进程混淆在一起,或者是认为他们是相似的,还有人说容器使用mount namespac来把进程禁锢在它的根文件系统中,这都是不对的! 让我们再来拷贝一份skeleton.c用来做挂载相关的修改。可以快速的构建和运行, 从而看下执行mount命令后我们当前的挂载点的样子。 > cp skeleton.c mount.c > gcc -o mount mount.c > ./mount mount...阅读全文

博文 2015-05-17 10:03:00 debian.cn

最全 MongoDB 基础教程

文档的排序获取第一个文档数据 db.ruochen.aggregate([{$group: {_id: "$by", url: {$first: "$url"}}}]) $last 根据资文档的排序获取最后一个文档数据 db.ruochen.aggregate([{$group: {_id: "$by", url: {$last: "$url"}}}]) 管道 管道在Unix和Linux中一般用于将当前命令的输出结果作为下一个命令的参数 MongoDB的聚合管道将MongoDB文档在一个管道处理完毕后将结果传递给下一个管道处理 管道操作是可以重复的 表达式:处理文档并输出 表达式是无状态的,只能用于计算当前聚合管道的文档,不能处理其它的文档 常用操作 $project:修改输入文档的结构...阅读全文

博文 2021-02-22 07:45:45 OSChina

成为Debian社区维护人需要做好的准备

fingerprints 并在稍后进行签署、上传到公共密钥服务器。通常可以在一些较大型的开软件活动前和时间/地点都方便的 DD 联系好,在聚会时举办一个密钥签名活动。另外,如果给你签名的只有你的 sponsor,则你的密钥仍不符合要求,因为 Debian 无法确信这份申请是否是你的 sponsor 伪造的。 接下来就是按照 Debian 的官方流程来进行申请。 经过一番辛苦成为 DM 之后,便可以考虑是否要申请 DD 以及可能的申请计划。申请 DD 的要求比 DM 更细致,涉及的方面也更多。DM 和 DD 都拥有或多或少的特权,如此多的要求是为了确保申请者能够正确把握手中的特权,为社区做积极的贡献。如果觉得这个过程好繁琐,那么就不要申请 DM,直接参与到维护过程中,其区别如前所述仅仅是能否直接上传而已。 附...阅读全文

技术部门的 SEO 规范

面上线时确保已加流量统计代码。所有网站开通百度资平台、Google Search Console账号。禁止使用session ID、Frame(框架结构)、Flash。已上线网站,除非SEO或运营部门另行要求,robots文件开放所有URL及文件(包括图片、CSS、JS)的抓取。后台实时或定期生成并更新XML版Sitemap,包括首页、栏目及翻页、产品/文章页面。是否包括过滤条件页面与SEO部门协调后再确定。新站一律使用响应式设计,不要使用独立移动站或移动版子域名。已使用移动子域名优化的旧站,暂时保持现状,与SEO部门沟通后转为响应式设计。英文网站HTML代码不要出现中文字符,包括注释中。由于各种原因需要改动URL时,旧URL做301转向至新URL。不要使用其它转向方式。由于各种原因改动...阅读全文

博文 2019-03-28 13:58:51 debian.cn

Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来共享内存 ,避免goroutine因竞争共享内存频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象代表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文

Ceph 12.2.0 正式版本发布, 代号 Luminous

Ceph 是一个可扩展的分布式存储系统,性能卓越,全可靠。 Ceph 12.2.0 正式版已发布。这是Luminous v12.2.x长期稳定版本的第一个版本。在Kraken(v11.2.z)和 Jewel(v10.2.z)后我们做了很多重大修改,而且升级过程并不简单哦。请仔细阅读版本说明。 在 Kraken(v11.2.z)版本上进行的重要修改 通用 Ceph现在有一个内置的简易DarshBoard,用于监控集群状态。 RADOS Bluestore ceph-osd的新后端存储BlueStore已经稳定,是新创建的OSD的默认设置。 BlueStore通过直接管理物理HDD或SSD而不使用诸如XFS的中间文件系统,来管理每个OSD存储的数据,这提供了更大的性能和功能...阅读全文

博文 2017-08-31 13:36:49 debian.cn

谷歌元老施密特隐退:传奇落幕 新篇开启

。对于这句话佩奇也是有着深刻的理解,在担任谷歌 CEO 短短四年之后,他就将 CEO 的位子让给了2004年加入谷歌的印度人桑达尔·皮查伊,他主导了 Android 的后期运作、还一手建立起了 Chrome 项目。 可以预见的是,佩奇和布林两位创始人现在从公司运营一线退了下来,就像7年前的施密特一样,而未来他们也应该会完全把手中的担子交给年轻人,然后像今天的施密特一样然退休。传奇落幕,新篇开始,原来在商业和科技界,也有体育赛场上那样的伟大传承。【本文转载自威锋网】...阅读全文

博文 2017-12-24 09:18:44 debian.cn

六大算法之三:动态规划【转载】

物品时的dp dp[i][j] = dp[i-1][j]; } } } return dp[n][v]; } 优化:滚动数组,只创建一个一维数组,长度为从1到W,初始值都是0,能得下i时,dp[j] = Math.max(dp[j], dp[j-w[i]]+p[i]);不下时,dp[j] = dp[j]; public static int PackageHelper2(int n,int w[],int p[],int v) { //设置一个二维数组,横坐标代表从第一个物品开始放到第几个物品,纵坐标代表背包还有多少容量,dp代表最大价值 int dp[] = new int[v+1]; for(int i=1;i<=n;i++){ for(int j=v;j>0;j--){ if(j...阅读全文

博文 2021-07-31 07:18:53 CSDN博客

Gitlab CI 配置文件 .gitlab

update --init --recursive 注意:如果想要此功能正常工作,子模块必须配置(在.gitmodules)下面中任意一个: 可访问的公共仓库http(s)地址, 在同一个GitLab服务器上有一个可访问到另外的仓库的真实地址。更多查看Git 子模块文档。 Job stages attempts GitLab引入,要求GItLab Runner v1.9+。 正在执行的job将会按照你设置尝试次数依次执行下面的stages: 变量 描述 GET_SOURCES_ATTEMPTS 获取job的尝试次数 ARTIFACT_DOWNLOAD_ATTEMPTS 下载artifacts的尝试次数 RESTORE_CACHE_ATTEMPTS 重建缓存的尝试次数 默认是一次尝试。 例如...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

显著的性能提升。 但是观测上图,我们发现了新的性能黑点,如红框所述,我们将其展开,见详细图: 这里主要是一个 toHexString 的操作,竟然占用的cpu资这么大,这里需要定位。 9.4 ObjectId.toHexString 性能优化 查看这一步转换为16进制的字符串的代码如下,我们结合上面的火焰图可以看出来,主要耗时是在 String.format() 这一步操作。 private String toHexString() { StringBuilder buf = new StringBuilder(24); byte[] bytes = new byte[12]; bytes[0] = int3(this.timestamp); bytes[1] = int2...阅读全文

博文 2022-03-11 10:05:09 博客园

Gitlab CI 配置文件 .gitlab

environment:name environment:action stage需要和review_app相同,以便分支删除被删除的时候自动执行停止。 dynamic environment 注意: GitLab 8.12开始引入,并且要求GitLab Runner 1.6 。 GitLab 8.15开始引入$CI_ENVIRONMENT_SLUG。 environment也可以是代表配置项,其中包含name和url。这些参数可以使用任何的CI variables(包括预定义、全变量和.gitlab-ci.yml中的变量)。 举个例子: deploy as review app: stage: deploy script: make deploy environment: name: review...阅读全文

博文 2018-12-12 21:01:19 ci.yaml 详解(上)