编写 GPT 提示词的公式 + 资源分享
GPT 能够给我们带来很大的帮助,因此我们要好好利用它。我们希望 GPT 输出令我们满意的内容,影响 GPT 输出内容的因素有模型和输入(Prompt,提示词)。
【全网首发】深入剖析 Golang 程序启动原理 - 从 ELF 入口点到GMP初始化到执行 main!
看似简简单单的一个 Golang 的 Hello World 程序,只要你愿意深挖,里面真的有极其丰富的营养的!
go的net/http有哪些值得关注的细节?
了解它的内部实现原理,可以帮助我们写出更高性能的代码,以及避免协程泄露造成的内存泄漏问题。
Go 面试题:string 是线程安全的吗?
每次做并发操作时,都建议想清楚,这个场景的到底需不需要保护共享变量,做好原子操作等。
各个语言运行100万个并发任务需要多少内存?
有些程序在10000个连接中仅消耗了略高于100MB的内存,但另一些程序却达到了接近3GB。
.NET中委托性能的演变
.NET中的委托.NET中的委托是一项重要功能,可以实现间接方法调用和函数式编程。自.NET Framework 1.0起,委托在.NET中就支持多播(multicast)功能。通过多播,我们可以在单个委托调用中调用一系列方法,而无需自己维护方法列表。即使在今天,委托的多播功能在桌面开发中仍然
GO 学了一个月,代码不会写,先看个源码解析
本地启动在第三篇自定义中间件的前提下,已经说了很多关于本地通过 CRD 或者 File 作为 provider 的启动方式,这里想要补充一下关于本地 DEBUG 3.0.0 版本代码的问题,后续的源码分析也都会基于目前最新的 3.0 版本。在写文章的时候,目前 3.0 版本还是 beta 版本。
抓包分析RST报文
今天我们来分析下网络连接中经常出现的RST信号,连接中出现RST信号意味着这条链接将会断开,来看下什么时候会触发RST信号,这在分析连接断开的原因时十分有帮助。
编译程序的任务
编译程序是一种翻译程序,编译程序是将一种语言形式翻译成另一种语言形式。它将高级语言所写的源程序翻译成等价的机器语言或汇编语言的目标程序。 整个编译过程一般可以划分为 5 个阶段:词法分析、语法分析、语义分析及中间代码生成、中间代码优化和目标代码生成。
eBPF 入门开发实践教程十四:使用 USDT 捕获用户态 Java GC 事件耗时
eBPF 还支持使用 USDT (用户级静态定义跟踪点) 捕获用户态的应用程序行为,本文我们将介绍如何使用 eBPF 和 USDT 来捕获和分析 Java 的垃圾回收 (GC) 事件的耗时。
业务逻辑复杂,历史久远的接口出现数据错误怎么办?
接口返回数据错误,如何快速找到问题原因并进行修复?01背景1.1 下班时,业务反馈:线上数据错了1.2 分析找前端同学确认控制“点击咨询期货”是由接口返回的“skuLt”字段控制:02BugShoot
wireshark分析tcp传输之文件上传速率问题
在网络性能问题排查思路那一节里,我提到了查看系统网络瓶颈的方法以及排查丢包问题的手段。但就此分析网络问题还不够精细,有时网络资源并没有达到瓶颈,或者并没有丢包产生,但是网络传输速率就是很慢,或者有丢包产生,但无法知道丢包的详细过程,无法知道整个tcp传输过程的具体情况。如何更加精细的查看网络包传
编译器优化那些事儿(10):区域分析
为了有效地优化代码,编译器需要在程序的各个节点建立并求解与信息有关的方程来收集数据流信息,并将这些信息分发给流程图的每个块,这个过程被称为数据流分析~
一次系统延迟优化案例
一次系统延迟优化案例服务监控系列文章服务监控系列视频问题背景线上隔三差五晚上10点左右总会有sql报警出现,且是同样的sql,我们的sql报警是在应用程序内部通过对sql操作增加钩子函数,对sql前后执行的位置记录下时间戳,然后sql执行完毕后,对时间戳进行相减得到sql执行时长,大于1s则
【全网首发】一次有关 DNS 解析导致 APP 慢的问题探究
HTTTPDNSAWS Router53APP 使用 HTTPDNS, 为解决 DNS 解析生效慢, DNS 劫持等问题。
eBPF Talk: challenge verifier
在这篇文章里,将分析 verifier log,找到问题所在,并解决这个问题。
八大生产故障 排查思路(通用版)
你好,我是悟空。常见的生产故障有哪些?在生产环境中,常见的故障类型包括但不限于以下几种:网络故障:网络故障可能包括网络连接中断、网络延迟过高、路由错误等。这可能导致系统无法正常访问外部资源,或导致应用程序无法与其他系统进行通信。服务器故障:服务器故障可能包括硬件故障、操作
编译器优化那些事儿(9):Machine Outliner
在嵌入式领域,代码体积(code size)优化能够减少内存的使用,对产品的竞争力至关重要
Go设计模式--中介者,最后的模式
大家好,这里是每周都在陪你一起进步的网管~!今天继续学习设计模式,也是我们要学习的最后一个设计模式—中介者模式,对这个模式有一点了解后会觉得它跟我们已经学过的观察者模式挺像,但是两者还是有些区别的,使用场景也不一样,具体我们放在最后再讲,先来一起学习中介者模式。中介者模式是一种行为
Go设计模式--解释器模式
大家好,这里是每周都在陪你一起进步的网管~!今天继续学习设计模式—解释器模式解释器模式是一种行为设计模式,可以用来在程序里创建针对一个特点领域语言的解释器,用于处理解释领域语言中的语句。换句话说,该模式定义了领域语言的抽象语法树以及用示来解释语法树的解释器。模式使用场景解释器模式
Hive分桶秘籍:解锁大数据性能提升的神秘力量
摘本文将对Hive分桶的合理性进行分析,阐述了分桶的原理、优势以及如何设计合理的分桶方案。通过探讨分桶在不同场景下的应用,我们可以更好地理解分桶对于提高查询性能和数据管理的重要性。
Go设计模式--命令模式
大家好,这里是每周都陪你进步的网管,假期归来咱们继续更新设计模式系列,这次要和大家一起学习的是命令模式,如果你对领域驱动设计感兴趣,这个模式一定要好好学,命令模式是DDD风格的框架中高频使用的一个模式。命令模式是一种行为型模式。它通过将请求封装为一个独立的对象即命令对象,来解耦命令的调用者和接收
Go设计模式--备忘录模式,带暂存的业务功能可以参考它来实现
大家好,这里是每周都在陪你一起进步的网管~!今天继续学习设计模式—备忘录模式备忘录模式(Memento Pattern)又叫作快照模式(Snapshot Pattern), 或令牌模式(Token Pattern), 指在不破坏封装的前提下, 捕获一个对象的内部状态, 并在对象之外保
Go设计模式--访客模式
大家好,这里是每周都在陪你一起进步的网管~!今天继续学习设计模式—访客模式访客模式也叫访问者模式(Visitor Pattern)是一种将数据结构对象与数据操作分离的设计模式,可以在不改变数据结构对象类结构的前提下定义作用于这些对象的新的操作, 属于行为型设计模式。访问者模式主要适
Go设计模式-迭代器到底是不是一个多此一举的模式?
大家好,这里是陪你一起进步的网管~!上周收到了各位对设计模式的催更,这里我就直接开始啦,今天要一起学习的是迭代器模式。迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。提供了一种方法顺序地访问一个聚合对象中的元素,而不是暴
太坑了吧!一次某某云上的redis读超时排查经历
问题背景:最近一两天线上老是偶现的redis读超时报警,并且是业务低峰期间,甚是不解,于是开始着手排查。
eBPF verifier验证器与编译器inline内联
二月份编写eCapture的GoTls密钥捕获功能时,遇到了一个小bug,就是在UBUNTU 21.04的Linux上运行时,遇到eBPF verifier的报错,无法启动,后来通过启用always inline解决了这个问题~
使用 eBPF 技术跟踪 Netfilter 数据流
我们了解到对于 Netfilter 的底层函数为 ipt_do_table,那么我们只需要使用 kprobe 和 kretprobe 获取到入参和返回结果,即可以获取到对应的过滤结果
eBPF: 从 BPF2BPF 调用到尾调用
我在学习尾调用的时候苦于没有一个能跑起来的简单易懂的例子,所以最后自己撸了一个,这个版本我认为是目前能找到的所有例子里对初学者最友好,逻辑最清晰的一个~
使用eBPF实现基于DWARF的堆栈遍历
译者注:原文为https://www.parca.dev/[1]的Javier Honduvilla Coto[2],文章地址DWARF-based Stack Walking Using eBPF[3],副标题Deep dive into the new DWARF-based stack
面试必备:四种经典限流算法讲解
前言大家好,我是田螺.最近一位朋友去拼夕夕面试,被问了这么一道题:限流算法有哪些?用代码实现令牌桶算法。跟星球好友讨论了一波,发现大家都忘记得差不多了.所以田螺哥再整理一波,常见的四种限流算法,以及简单代码实现,相信大家看完,会茅塞顿开的。1、固定窗口限流算法1.1 什么是固定窗口限流算
Go设计模式--桥接模式,让代码既能多维度扩展又不会臃肿
下面举个大家都能理解的例子来说明桥接模式模式在系统多维度扩展和降低臃肿度上的作用
.NET微服务系统迁移至.NET6.0的故事
本次迁移涉及的是公司内部一个业务子系统,该系统是一个多样化的应用,支撑着公司的多个业务方向。目前,该系统由40多个基于.NET的微服务应用构成,使用数千个CPU核心和数TB内存,在数百个Linux容器中运行。每天,该系统需要处理数十亿次请求。该系统其中大部分服务是在2018-2019年左右由老旧
eBPF 快速定位网络抖动
在容器集群中新部署的服务 A,在测试初期发现通过服务注册发现访问下游服务 B(在同一个容器集群) 调用延时 999 线偶发抖动,测试 QPS 比较小,从业务监控上看起来比较明显,最大的延时可以达到 200 ms。
传输安全HTTPS
通过阅读本篇文章你可以了解到: 1、为什么要有HTTPS; 2、TLS1.2 握手的过程。
使用 Go 语言开发 eBPF 程序
本文将介绍基于 Go 和对应的库开发 eBPF 程序
eBPF 完全入门指南.pdf(万字长文)
开发者可基于 eBPF 开发性能分析工具、软件定义网络、安全等诸多场景。本文将介绍 eBPF 的前世今生,并构建一个 eBPF 环境进行开发实践,文中所有的代码可以在我的 Github[2] 中找到。
eBPF指令集规范v1.0
编译成功的eBPF程序,加载时偶尔会过不了内核BPF verifier,冒出一堆汇编语句。理解eBPF指令集,可以帮助我们调试这类问题。
从输入URL到Web页面呈现的全过程
简单来说,当用户在浏览器的地址栏中输入 URL 并点击回车后,浏览器从服务端获取资源,然后将内容显示在页面上。这个过程经过了:浏览器缓存 -> DNS 域名解析 -> URL 编码 -> 使用 HTTP 或者使用 HTTPS 协议发送请求等过程。
Go设计模式--享元模式,节省内存的好帮手
当一个系统中有大量的重复对象的时候,如果这些对象是不可变对象,我们就可以使用享元模式,将这些对象设计成享元,在内存只保存一份,供需要的代码使用,这样能减少内存中对象的数量,起到节省内存的作用。
.NET遍历二维数组-先行/先列哪个更快?
上周在.NET性能优化群里面有一个很有意思的讨论,讨论的问题如下所示:
内容分发网络 CDN
内容分发网络(英语:Content Delivery Network 或 Content Distribution Network,缩写:CDN)将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。
开放报名 | 字节跳动工程师带你 5 天进阶 iOS 应用稳定性优化
iOS稳定性训练营开启报名!5天进阶异常问题排查与稳定性治理
關於用 Go 实现堆和堆操作,可能是最通俗易懂的讲解了
堆是一种树形数据结构,分为大顶堆和小顶堆,顾名思义,大顶堆就是堆顶(第一个元素)始终存放的是这组元素中的最大元素,小顶堆就是堆顶元素是最小元素。如果需要从一组对象中查找最大值或最小值,使用堆能够高效率的完成需求。排序算法中的堆排序正是利用了堆这一数据完成的排序,堆在实际应用中主要被用于实现优先队列
Go 内联优化:如何让我们的程序更快?
大家好,我是煎鱼。最近周末在家学习时看到 @Dave Cheney 的《Inlining optimisations in Go[1]》还是有不少养分的,翻译分享给大家,部分内容有所修改、删减、调整。这是一篇介绍 Go 编译器如何实现内联的文章,以及这种优化将如何影响你的 Go 代码,并最终
TCP-三次握手
TCP-三次握手最近对计算机网络蛮感兴趣的,借着这股劲,来系统研究研究 TCP 协议。先来个经典的三次握手问题一问,为什么要三次握手?首先 TCP 协议底层是 IP层,IP层 本身是不可靠的TCP 协议的出现,就是要创建一个可靠的协议,区别于 UDP协议TCP 为了提供可靠的服务,得先建
看我是如何用C#编写一个小于8KB的贪吃蛇游戏的
译者注:这是Michal Strehovský大佬的一篇文章,他目前在微软.NET Runtime团队工作,主要是负责.NET NativeAOT功能的开发。我在前几天看到这篇文章,非常喜欢,虽然它的内容稍微有点过时(还是使用的.NET Core 3.0),不过其中的一些编程技巧和
【全网首发】一文读懂 Go Http Server 原理
俗话说万事开头难,但用 Go 实现一个 Http Server 真不难,简单到什么程度?起一个 Server,并且能响应请求,算上包名、导入的依赖,甚至空行,也就只要 15 行代码
开启 | 2023社区【首发计划】原创激励活动
新年好呀!各位创作者大大们~ 2022年我们推出了【首发有礼】原创好文活动,在此期间收到了很多作者大大的欢迎,陆续有越来越多的优秀创作者们入驻社区参与首发~2023我们重新再出发,今年会继续提高社区内容的原创度,同时为了回馈一直支持我们的各位作者,社区2023年【首发计划】原创激
CDN是什么?用了CDN就一定比不用更快吗?
对于开发同学来说,CDN这个词,既熟悉又陌生。平时搞开发的时候很少需要碰这个,但却总能听到别人提起。我们都听说过它能加速,也大概知道个原因,但是往深了问。用了CDN就一定比不用更快吗?
从29.6s优化到33ms,我是如何做到的
案发现场收到用户反馈,功能不好用了:“这个列表是坏了嘛我今天给一下午都点不开” 抓紧在本地复现了下:测试环境是没有问题的。线上的页面打开慢、还会报错:"request timeout"现状去日志中查了下,是查询TableStore时报
聊聊两个Go即将过时的GC优化策略
概述首先我们来简单的看一下 Go GC中做了什么事,以及它里面比较耗时的地方是什么,我们才能对它进行优化。首先对于 GC 来说有这么几个阶段:sweep termination(清理终止):会触发 STW ,所有的 P(处理器) 都会进入 safe-point(安全点);the mark
Skywalking on the way-千亿级的数据储能、毫秒级的查询耗时
 目录1、开篇2、为什么需要全链路监控3、为什么选择Skywalking4、预研阶段5、POC阶段6、优化阶段7、后续1、开篇自从Skywaling开始在公司推广,时不时会在排查问题的人群中听到这样的话:“你咋还没接Skywalking?接入后,一眼就
.NET性能优化-ArrayPool同时复用数组和对象
前两天在微信后台收到了读者的私信,问了一个这样的问题,由于私信回复有字数和篇幅限制,我在这里统一回复一下。读者的问题是这样的:大佬您好,之前读了您的文章受益匪浅,我们有一个项目经常占用 7-8GB 的内存,使用了您推荐的ArrayPool以后降低到 4GB 左右,我还想着能不能继续优化,于是 d
动图图解 | UDP就一定比TCP快吗?
话说,UDP比TCP快吗?相信就算不是八股文老手,也会
高性能 Go 日志库 zap 设计与实现
最近我也在学习如何在开发中让代码运行更加高效,然后在浏览各种优秀的日志设计的时候看到 uber 有一个叫 zap 的日志库引起了我的注意,它主要特性是对性能和内存分配都做到了极致的优化。对于我来说,原本在项目中是使用 logrus 来作为日志输出,但是看到 zap 的 benchmark,感觉在
深入 Go 中各个高性能 JSON 解析库
其实本来我是没打算去看 JSON 库的性能问题的,但是最近我对我的项目做了一次 pprof,从下面的火焰图中可以发现在业务逻辑处理中,有一半多的性能消耗都是在 JSON 解析过程中,所以就有了这篇文章。这篇文章深入源码分析一下在 Go 中标准库是如何解析 JSON 的,然后再看看有哪些比较流行的
.NET性能优化-使用内存+磁盘混合缓存
我们回顾一下上一篇文章中的内容,有一个朋友问我这样一个问题:我的业务依赖一些数据,因为数据库访问慢,我把它放在Redis里面,不过还是太慢了,有什么其它的方案吗?其实这个问题比较简单的是吧?Redis其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就
数组还是HashSet?
我记得大约在半年前,有个朋友问我一个问题,现在有一个选型:一个性能敏感场景,有一个集合,需要确定某一个元素在不在这个集合中,我是用数组直接Contains还是使用HashSet<T>.Contains?大家肯定想都不用想,都选使用HashSet<T>,毕竟Hash
Go语言GC实现原理及源码分析
介绍三色标记法三色标记法将对象的颜色分为了黑、灰、白,三种颜色。黑色:该对象已经被标记过了,且该对象下的属性也全部都被标记过了(程序所需要的对象);灰色:该对象已经被标记过了,但该对象下的属性没有全被标记完(GC需要从此对象中去寻找垃圾);白色:该对象没有被标记过(对象垃圾);在垃
编译器优化那些事儿(8):指令调度概述
指令调度简介指令调度是指对程序块或过程中的操作进行排序
面试官问我接口优化:我一口气说了十八种
前言大家好,我是捡田螺的小男孩。之前工作中,遇到一个504超时问题。原因是因为接口耗时过长,超过nginx配置的10秒。然后 真枪实弹搞了一次接口性能优化,最后接口从11.3s降为170ms。本文将跟小伙伴们分享接口优化的一些通用方案。1. 批量思想:批量操作数据库 优化前://for
介绍HTTP
本篇文章主要介绍了HTTP报文、HTTP请求方法、HTTP响应的状态码、Cookie技术
有趣的 Go HttpClient 超时机制
hello,大家好呀,我是既写 Java 又写 Go 的
计算机网络 | TCP 连接的建立 和 TCP 连接的断开
TCP 连接的建立过程一开始,客户端和服务端都处于 close 状态。先是服务端监听某个端口,此时服务端处于 listen 状态。这个时候客户端就可以发送连接请求报文了。第一次握手客户端会主动发送连接请求报文,随机初始化序列号为 x,并把 SYN 标志位设置为 1,表示 SYN 报文
软件设计杂谈——性能优化的十种手段(下篇)
索引软件设计杂谈——性能优化的十种手段(上篇),我们总结了六种普适的性能优化方法,包括 索引、压缩、缓存、预取、削峰填谷、批量处理,简单讲解了每种技术手段的原理和实际应用;软件设计杂谈——性能优化的十种手段(中篇),我们简单了解了程序是如何消耗执行时间和内存空间的;软件设计杂谈——性能优化的十
软件设计杂谈——性能优化的十种手段(中篇)
引言上一篇,我们总结了六种普适的性能优化方法,包括 索引、压缩、缓存、预取、削峰填谷、批量处理,简单讲解了每种技术手段的原理和实际应用。在开启最后一篇前,我们先需要搞清楚:在程序运行期间,时间和空间都耗在哪里了?时间都去哪儿了?人眨一次眼大约100毫秒,而现代1核CPU在一眨眼的功夫就可以执行
软件设计杂谈——性能优化的十种手段(上篇)
导语:软件设计开发某种意义上是“取”与“舍”的艺术。关于性能方面,就像建筑设计成抗震9度需要额外的成本一样,高性能软件系统也意味着更高的实现成本,有时候与其他质量属性甚至会冲突,比如安全性、可扩展性、可观测性等等。大部分时候我们需要的是:在业务遇到瓶颈之前,利用常见的技术手段将系统优化到预期水平。
是什么让.NET7的Min和Max方法性能暴增了45倍?
简介在之前的一篇文章.NET性能系列文章一:.NET7的性能改进中我们聊到Linq中的Min()和Max()方法.NET7比.NET6有高达45倍的性能提升,当时Benchmark代码和结果如下所示:[Params(1000)]public int Length { get; set; }
图解 | 监控系统 Prometheus 的原理
这是悟空的第 171 篇原创文章官网:www.passjava.cn本篇将会以图解的方式剖析 Prometheus 的原理。本文主要内容如下:一、Prometheus 是什么?ELK Stack 日志收集和检索平台想必大家应该比较熟悉,Elasticsearch + Filebeat +
如何在.NET程序崩溃时自动创建Dump?
今天在浏览张队转载文章的留言时,遇到一个读者问了这样的问题,如下图所示:首先能明确的一点是"程序崩溃退出了是不能用常规的方式dump的",因为整个进程树都已经退出。现场已经无法使用常规的方式读取到。一般来说常规的方法是没办法读取到的,也有一些特殊的方式,比如有关部门在调查取证时,就可以通过一些工
创建.NET程序Dump的几种姿势
当一个应用程序运行的有问题时,生成一个Dump文件来调试它可能会很有用。在Windows、Linux或Azure上有许多方法可以生成转储文件。Windows平台dotnet-dump (Windows)dotnet-dump全局工具是一种收集和分析.NET核心应用程序Dump的方法。安
.NET性能优化-是时候换个序列化协议了
计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展。不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布式、横向的扩容系统,这听起来非常的美好,不过也带来了今天要说明的问题,分布式的节点越多,通信产生的成本就越大。网络传输带宽变得越
踩了坑:导出功能没做好,差点被投诉
背景:新上线的一个需求,研发期间,大家都做得比较辛苦。同时,收到用户反馈功能功能不好用。问题描述:反馈的问题是,导出的文件名像是乱码,看不懂。比如多导出几次,导出的文件多了,就不容易找到想要的那个。如果下载一个用户再自己重新命名一下,又会影响效率。根据文件名不知道里面的内容这就很烦了,不
ElasticSearch这些坑记得避开
Index用不好,麻烦事不会少;一、管理方式ElasticSearch作为最常用的搜索引擎组件,在系统架构中发挥极其重要的能力,可以极大的提升数据的加载和检索效率;但不可否认的是,在长期的应用实践中,也发现很多不好处理的流程和场景;从直观感觉上说,业务中对索引的使用主要涉及如图的几个流程
编译器优化那些事儿(7):Cache优化
软件开发人员往往期望计算机硬件拥有无限容量、零访问延迟、无限带宽以及便宜的内存,但是现实却是内存容量越大,相应的访问时间越长;内存访问速度越快,价格也更贵;带宽越大,价格越贵。为了解决大容量、高速度、低成本之间的矛盾,基于程序访问的局部性原理,将更常用数据放在小容量的高速存储器中,多种速度不同的存储
在线pdf请你谨慎打开
本篇其实算之前安全整改话题的一点补充,对之前内容感兴趣的可以走以下快捷通道:安全漏洞整改系列(二)安全漏洞整改系列(一)背景前不久某家客户对我们提供的系统又进行了一轮安全测试,其中有一条我觉得很有意思,也算是刷新了我的认知,那就是“pdf预览存在xss注入”,在此跟大家分享一波,也算是相互提
【全网首发】聊一聊 Tomcat 启动速度慢背后的真相
在线上环境中,我们经常会遇到类似的问题,就是tomcat 启动比较慢,查看内存和cpu,io都是正常的,但是启动很慢,有的时候长达几分钟,这到底是什么原因导致的。
编译器优化那些事儿(6):别名分析概述
别名分析是编译器理论中的一种技术,用于确定存储位置是否可以以多种方式访问。如果两个指针指向相同的位置,则称这两个指针为别名。但是,它不能与指针分析混淆,指针分析解决的问题是一个指针可能指向哪些对象或者指向哪些地址,而别名分析解决的是两个指针指向的是否是同一个对象。指针分析和别名分析通常通过静态代码分
一次线上CPU软中断异常分析
问题现象小伙伴反映压测过程中,应用服务器资源有点异常。对服务器的TOP打印结果如下图所示对TOP图进行分析,能拿到几组数据us的利用率大约在70%左右sy的利用率大约在10%左右si软中断的利用率大约在20%-30%之间,很高8核的机器,load负载最高已经到了70,很高Wa为0,内
代码中被植入了恶意删除操作,太狠了!
背景在交接的代码中做手脚进行删库等操作,之前只是网上听说的段子,没想到上周还真遇到了,并且亲自参与帮忙解决。事情是这样的,一老板接手了一套系统,可能因为双方在交接时出现了什么不愉快的事情,对方不提供源代码,只是把生产环境的服务器打了一个镜像给到对方。对方拿到镜像恢复之后,系统起来怎么也无法正常
【全网首发】服务器被入侵了!
大家好,我是坤哥安全问题往往被大家忽视,但它轻则导致公司用户数据泄露引发严重的舆论危机,重则导致数据被破坏导致公司破产,所以安全问题一定要重视,不过这类问题一旦出现,由于大家经验比较少,往往很难入手,今天就给大家带来一篇服务器被入侵的排查思路,相信大家看了肯定有收获!下文中的,给文件和目录加锁
【全网首发】记一次不断优化性能的算法比赛
hello大家好呀,我是小楼。上周参加了一个区的程序员技能比赛的初赛,其实就是算法比赛,虽然最后结果是过了初赛,但过程真是一言难尽啊。这次的算法比赛和ACM非常类似,虽然我大学是数学专业,虽然大学也修过ACM这门课,但是我的算法是真的不行,很菜很菜的那种。好在这次比赛是组(抱大腿)队模式
七张图,让你看懂Go语言的垃圾回收原理
前面两篇文章介绍了Go语言的内存分配策略以及Go协程动态扩充和收缩栈内存的原理,今天这篇文章我们主要来聊一下内存管理的另外一大块内容:垃圾回收。下面首先我们会聊一下什么是GC,GC的作用是什么,然后再结合图示用每个人都能听懂的大白话解释Go的GC原理。什么是GC?现代高级编程语言管理内存的方式
解密Go协程的栈内存管理
应用程序的内存会分成堆区(Heap)和栈区(Stack)两个部分,**程序在运行期间可以主动从堆区申请内存空间,这些内存由内存分配器分配并由垃圾收集器负责回收**。**栈区的内存由编译器自动进行分配和释放,栈区中存储着函数的参数以及局部变量,它们会随着函数的创建而创建,函数的返回而销毁**。
如何打造高性能的 Go 缓存库
我在看一些优秀的开源库的时候看到一个有意思的缓存库 fastcache,在它的介绍主要有以下几点特点: 读写数据要快,即使在并发下;即使在数 GB 的缓存中,也要保持很好的性能,以及尽可能减少 GC 次数;设计尽可能简单;本文会通过模仿它写一个简单的缓存库,从而研究其内核是如
编译器优化那些事儿(5):寄存器分配
概念介绍在介绍算法之前,我们回顾下基本概念:|X|:X的度数,(无向图中)节点的邻居个数。CFG:控制流图。successor:本文指CFG中基本块的后继。四元式:(op,result,arg1,arg2),比如常见的a=b+c就可以看作四元式(+,a,b
能ping通,TCP就一定能连通吗?
平时,我们想要知道,自己的机器到目的机器之间,网络通不通,一般会执行ping命令。一般对于状况良好的网络来说,你能看到它对应的loss丢包率为0%,也就是所谓的能ping通。如果看到丢包率100%,也就是ping不通。ping正常ping不通 那么问题来了,假设我能p
使用.NET简单实现一个Redis的高性能克隆版(七-完结)
译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。原作者:Ayende Rahien原
使用.NET简单实现一个Redis的高性能克隆版(六)
译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。原作者:Ayende Rahien原
既然有HTTP协议,为什么还要有RPC
 我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议?于是就到网上去搜。不少解释显得非常官方,我相信大家在各种平台上也都看到过,解释了又好像没解释,都在用一个我们不认识的概念去解释另外一个我们不认识的概念,懂的人不需要看,不
Go内存管理(一)--变量的逃逸分析
所谓内存逃逸,就是一开始分配在栈区的变量,因为某些原因逃逸到了堆区,那么都有哪些情况会造成变量逃逸到堆去呢?我们先从变量和内存模型说起。
AlterNats是如何做到高性能的发布订阅的?
在过去的一些文章里面,我们聊了一些.NET平台上高性能编程的技巧,今天带大家了解一下AlterNats这个库是如何做到远超同类SDK性能的。
使用.NET简单实现一个Redis的高性能克隆版(四、五)
译者注该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。由于接下来的两篇较短,本文一起把它们
使用.NET简单实现一个Redis的高性能克隆版(三)
该原文是Ayende Rahien大佬业余自己在使用C# 和 .NET构建一个简单、高性能兼容Redis协议的数据库的经历。 首先这个"Redis"是非常简单的实现,但是他在优化这个简单"Redis"路程很有趣,也能给我们在从事性能优化工作时带来一些启示。

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

本专题精选了HeapDump性能社区中的8篇数据库性能优化相关文章,这些文章内不仅包含了影响数据库性能的因素,数据库性能评估标准、优化方法的内容,还介绍了一些数据库设计原则和编程技巧,并且记录了一些或大或小的实战案例,帮助大家快速了解数据库性能优化,掌握一些实操技能。
8篇文章14794阅读量
本系列文章主要针对Dubbo2.6.2(dubbox2.8.4)版本,从源码的角度分析Dubbo内部的实现细节,加深对Dubbo的各配置参数底层实现原理的理解,更好的指导Dubbo实践。
14篇文章24641阅读量