系统性能优化5000字干货

系统性能优化 性能优化的目标:是提高系统或应用程序的响应时间、吞吐量、效率和可伸缩性等方面的性能指标。性能优化需要有一些技巧:对于一个整个产品或项目而言,比如可以从前端优化、后端优化、架构优化、高并发优化、Linux内核优化、常用中间件优化等方便去优化,当然每个方面侧重点不同,用的技术点也不同。当然除了上述从技巧方面做优化,我们也必须通过使用性能测试工具进行性能基准测试,并根据测试结果进行有针对性的优化。注意的是,性能优化需要结合具体的应用场景和问题进行分析和调整,避免过度优化和过早优化。 阅读详情

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法。而且不限于任何语言、框架,不过可能会用Python语言来举例。

一般性原则

依据数据而不是凭空猜测

这是性能优化的第一原则,当我们怀疑性能有问题的时候,应该通过测试、日志、profillig来分析出哪里有问题,有的放矢,而不是凭感觉、撞运气。

一个系统有了性能问题,瓶颈有可能是CPU,有可能是内存,有可能是IO(磁盘IO,网络IO),大方向的定位可以使用top以及stat系列来定位(vmstat,iostat,netstat…),针对单个进程,可以使用pidstat来分析。

在本文中,主要讨论的是CPU相关的性能问题。按照80/20定律,绝大多数的时间都耗费在少量的代码片段里面,找出这些代码唯一可靠的办法就是profile,大多数编程语言都有profile的相关工具,熟练使用这些工具是性能优化的第一步。

忌过早优化

The real problem is that programmers have spent far too much time
worrying about efficiency in the wrong places and at the wrong times;
premature optimization is the root of all evil (or at least most of
it) in programming.

不清楚Donald Knuth说出这句名言的上下文环境,但我自己是十分认同这个观念的。在我的工作环境(以及典型的互联网应用开发)与编程模式下,追求的是快速的迭代与试错,过早的优化往往是无用功。而且,过早的优化很容易拍脑袋,优化的点往往不是真正的性能瓶颈。

忌过度优化

As performance is part of the specification of a program – a program
that is unusably slow is not fit for purpose

性能优化的目标是追求合适的性价比。

在不同的阶段,对系统的性能会有一定的要求,比如吞吐量要达到多少多少。如果达不到这个指标,就需要去优化。如果能满足预期,那么就无需花费时间精力去优化,比如只有几十个人使用的内部系统,就不用按照十万在线的目标去优化。

一些优化方法是“有损”的,可能会对代码的可读性、可维护性有副作用,就更不能过度优化。

深入理解业务

代码是服务于业务的,也许是服务于最终用户,也许是服务于其他程序员。不了解业务,很难理解系统的流程,很难找出系统设计的不足之处。后面还会提及对业务理解的重要性。

性能优化是持久战

当核心业务方向明确之后,就应该开始关注性能问题,当项目上线之后,更应该持续的进行性能检测与优化。

现在的互联网产品,不再是一锤子买卖,在上线之后还需要持续的开发,用户的涌入也会带来性能问题。因此需要自动化的检测性能问题,保持稳定的测试环境,持续的发现并解决性能问题,而不是被动地等到用户的投诉。

选择合适的衡量指标、测试用例、测试环境

正因为性能优化是一个长期的行为,所以需要固定衡量指标、测试用例、测试环境,这样才能客观反映性能的实际情况,也能展现出优化的效果。

衡量性能有很多指标,比如系统响应时间、系统吞吐量、系统并发量。不同的系统核心指标是不一样的,首先要明确本系统的核心性能诉求,固定测试用例;其次也要兼顾其他指标,不能顾此失彼。

测试环境也很重要,有一次突然发现我们的QPS高了许多,但是程序压根儿没优化,查了半天,才发现是换了一个更牛逼的物理机做测试服务器。

性能优化的层次

性能优化层次可分为需求阶段,设计阶段,实现阶段;越上层的阶段优化效果越明显,同时也更需要对业务、需求的深入理解。

需求阶段

不战而屈人之兵,善之善者也

需求可能来自PM、UI的业务需求(或者说是功能性需求),也可能来自Team Leader的需求。当拿到一个需求的时候,首先需要的是思考、讨论需求的合理性,而不是立刻去设计、去编码。

需求是为了解决某个问题,问题是本质,需求是解决问题的手段。那么需求是否能否真正的解决问题,程序员也得自己去思考。产品经理(特别是知道一点技术的产品经理)的某个需求可能只是某个问题的解决方案,他认为这个方法可以解决他的问题,于是把解决方案当成了需求,而不是真正的问题。

需求讨论的前提对业务的深入了解,如果不了解业务,根本没法讨论。即使需求已经实现了,当我们发现有性能问题的时候,首先也可以从需求出发。

需求分析对性能优化有什么帮助呢,第一,为了达到同样的目的,解决同样问题,也许可以有性能更优(消耗更小)的办法。这种优化是无损的,即不改变需求本质的同时,又能达到性能优化的效果;第二种情况,有损的优化,即在不明显影响用户的体验,稍微修改需求、放宽条件,就能大大解决性能问题。PM退步一小步,程序前进一大步。

需求讨论也有助于设计时更具扩展性,应对未来的需求变化,这里按下不表。

设计阶段

高手都是花80%时间思考,20%时间实现;新手写起代码来很快,但后面是无穷无尽的修bug。

设计的概念很宽泛,包括架构设计、技术选型、接口设计等等。架构设计约束了系统的扩展、技术选型决定了代码实现。编程语言、框架都是工具,不同的系统、业务需要选择适当的工具集。如果设计的时候做的不够好,那么后面就很难优化,甚至需要推到重来。

实现阶段

实现是把功能翻译成代码的过程,这个层面的优化,主要是针对一个调用流程,一个函数,一段代码的优化。各种profile工具也主要是在这个阶段生效。除了静态的代码的优化,还有编译时优化,运行时优化。后二者要求就很高了,程序员可控性较弱。

代码层面,造成性能瓶颈的原因通常是高频调用的函数、或者单次消耗非常高的函数、或者二者的结合。

下面介绍针对设计阶段与实现阶段的优化手段。

一般性方法

缓存

没有什么性能问题是缓存解决不了的,如果有,那就再加一级缓存

a cache /kæʃ/ KASH,[1] is a hardware or software component that stores data so future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation, or the duplicate of data stored elsewhere.

缓存的本质是加速访问,访问的数据要么是其他数据的副本 — 让数据离用户更近;要么是之前的计算结果 — 避免重复计算.

缓存需要用空间换时间,在缓存空间有限的情况下,需要优秀的置换换算来保证缓存有较高的命中率。

数据的缓存

这是我们最常见的缓存形式,将数据缓存在离使用者更近的地方。比如操作系统中的CPU cache、disk cache。对于一个web应用,前端会有浏览器缓存,有CDN,有反向代理提供的静态内容缓存;后端则有本地缓存、分布式缓存。

数据的缓存,很多时候是设计层面的考虑。

对于数据缓存,需要考虑的是缓存一致性问题。对于分布式系统中有强一致性要求的场景,可行的解决办法有lease,版本号。

计算结果的缓存

对于消耗较大的计算,可以将计算结果缓存起来,下次直接使用。

对递归代码的一个有效优化手段就是缓存中间结果,lookup table,避免了重复计算。python中的method cache就是这种思想。

对于可能重复创建、销毁,且创建销毁代价很大的对象,比如进程、线程,也可以缓存,对应的缓存形式如单例、资源池(连接池、线程池)。

对于计算结果的缓存,也需要考虑缓存失效的情况,对于pure function,固定的输入有固定的输出,缓存是不会失效的。但如果计算受到中间状态、环境变量的影响,那么缓存的结果就可能失效。

并发

一个人干不完的活,那就找两个人干。并发既增加了系统的吞吐,又减少了用户的平均等待时间。

这里的并发是指广义的并发,粒度包括多机器(集群)、多进程、多线程。

对于无状态(状态是指需要维护的上下文环境,用户请求依赖于这些上下文环境)的服务,采用集群就能很好的伸缩,增加系统的吞吐,比如挂载nginx之后的web server。

对于有状态的服务,也有两种形式,每个节点提供同样的数据,如mysql的读写分离;每个节点只提供部分数据,如mongodb中的sharding。

分布式存储系统中,partition(sharding)和replication(backup)都有助于并发。

绝大多数web server,要么使用多进程,要么使用多线程来处理用户的请求,以充分利用多核CPU,再有IO阻塞的地方,也是适合使用多线程的。比较新的协程(Python greenle、goroutine)也是一种并发。

惰性

将计算推迟到必需的时刻,这样很可能避免了多余的计算,甚至根本不用计算。

批量,合并

在有IO(网络IO,磁盘IO)的时候,合并操作、批量操作往往能提升吞吐,提高性能。

最常见的是批量读:每次读取数据的时候多读取一些,以备不时之需。如GFS client会从GFS master多读取一些chunk信息;如分布式系统中,如果集中式节点复杂全局ID生成,那么应用就可以一次请求一批id。

特别是系统中有单点存在的时候,缓存和批量本质上来说减少了与单点的交互,是减轻单点压力的经济有效的方法。

在前端开发中,经常会有资源的压缩和合并,也是这种思想。

当涉及到网络请求的时候,网络传输的时间可能远大于请求的处理时间,因此合并网络请求就很有必要,比如mognodb的bulk operation,redis 的pipeline。写文件的时候也可以批量写,以减少IO开销,GFS中就是这么干的。

更高效的实现

同一个算法,肯定会有不同的实现,那么就会有不同的性能;有的实现可能是时间换空间,有的实现可能是空间换时间,那么就需要根据自己的实际情况权衡。

程序员都喜欢造轮子,用于练手无可厚非,但在项目中,使用成熟的、经过验证的轮子往往比自己造的轮子性能更好。当然不管使用别人的轮子,还是自己的工具,当出现性能的问题的时候,要么优化它,要么替换掉它。

比如,我们有一个场景,有大量复杂的嵌套对象的序列化、反序列化,开始的时候是使用python(Cpython)自带的json模块,即使发现有性能问题也没法优化,网上一查,替换成了ujson,性能好了不少。

上面这个例子是无损的,但一些更高效的实现也可能是有损的,比如对于python,如果发现性能有问题,那么很可能会考虑C扩展,但也会带来维护性与灵活性的丧失,面临crash的风险。

缩小解空间

缩小解空间的意思是说,在一个更小的数据范围内进行计算,而不是遍历全部数据。最常见的就是索引,通过索引,能够很快定位数据,对数据库的优化绝大多数时候都是对索引的优化。

如果有本地缓存,那么使用索引也会大大加快访问速度。不过,索引比较适合读多写少的情况,毕竟索引的构建也是需有消耗的。

另外在游戏服务端,使用的分线和AOI(格子算法)也都是缩小解空间的方法。

性能优化与代码质量

很多时候,好的代码也是高效的代码,各种语言都会有一本类似的书《effective xx》。

衡量代码质量的标准是可读性、可维护性、可扩展性,但性能优化有可能会违背这些特性,比如为了屏蔽实现细节与使用方式,可能会加入接口层(虚拟层),这样可读性、可维护性、可扩展性会好很多,但是额外增加了一层函数调用,如果被频繁调用,也是一笔开销。

这种有损代码质量的优化,应该放到最后,不得已而为之,同时写清楚注释与文档。

为了追求可扩展性,经常会引入一些设计模式,如状态模式、策略模式、模板方法、装饰器模式等,但这些模式不一定是性能友好的。

为了性能,可能需要写出一些反模式的、定制化的、不那么优雅的代码,这些代码其实是脆弱的,需求的一点点变动,对代码逻辑可能有至关重要的影响,所以还是回到前面所说,不要过早优化,不要过度优化。

系统扛不住流量?这5个架构优化技巧让并发提升10倍! 系统架构优化是一个复杂的系统性工程,需要从多个维度进行考虑。通过合理使用缓存、优化数据库、实施服务降级与熔断、采用异步处理和资源隔离等策略,我们可以显著提升系统的并发能力,缓解流量压力。最后,架构优化没有银弹,适合自己业务的才是最好的。希望这篇文章能给大家带来一些启发,如果你有更好的优化经验,欢迎在评论区分享。关注「服务端技术精选」,获取更多技术干货。 阅读详情

相关推荐

RAG-Anything 实战:构建企业级多模态知识图谱问答系统

本文详细介绍了如何利用RAG-Anything构建企业级多模态知识图谱问答系统,解决跨模态文档处理的痛点。通过架构设计解析、部署实战指南和典型业务场景解决方案,帮助企业实现高效的知识管理和智能检索,提升决策效率。

weixin_29089057的博客 385

老生常谈—后端优化性能经验分享

今天谈下业务系统性能问题分析诊断和性能优化方面的内容。这篇文章重点还是谈已经上线的业务系统后续出现性能问题后的问题诊断和优化重点。 系统性能问题分析流程 我们首先来分析下如果一个业务系统上线前没有性能问题,而在上线后出现了比较严重的性能问题,那么实际上潜在的场景主要来自于以下几个方面。 业务出现大并发的访问,导致出现性能瓶颈 上线后的系统数据库数据日积月累,数据量增加后出现性能瓶颈 其它关键环境改变,比如我们常说的网络带宽影响 正是由于这个原因,当我们发现性能问题的时候,首先就需要判断是单用户非并发.

代码时光 1864

【Docker】Docker安装Hadoop分布式集群

hadoop目录安装在:/usr/local/hadoop-2.7.0/etc/hadoop。访问Hadoop102:9870,查看是否能够看到hdfs界面。访问hadoop103:8088,查看能够看到yarn界面。在yarn上可以看到执行情况。

weixin_46429290的博客 3460

如何进行系统性能优化

前言 不战而屈人之兵,善之善者也 性能优化的第一原则是,通过测试,日志,profiling 分析出哪有问题,然后有的放失。 性能优化时持久战,在深入理解业务后,结合系统响应,系统吞吐,系统并发量指标,对系统进行优化 一般来说,一个系统有性能问题: 有可能是一下几方面: CPU, 内存, IO(磁盘IO,网络IO). 性能优化的目标是追求合适的性价比。 性能优化前,需要深入的理解业务,代码是为了业务服务,服务于最终用户。 性能优化,可以在需求阶段,设计阶段,实现阶段。 高手总是花80%时间用来思考, 2

王小明的专栏 2704

滤波器设计实战:Filter Solutions软件从入门到精通

本文是Filter Solutions滤波器设计软件的实战指南,从入门到精通。通过设计一个低通数字滤波器的完整流程,详细讲解了参数设置、FIR/IIR选择、窗函数及逼近函数应用。文章重点介绍了如何利用这款经典工具高效完成滤波器设计、性能权衡,并将设计成果导出至MATLAB等平台进行实际验证与应用,是信号处理工程师提升效率的实用参考。

weixin_29095049的博客 531

Win10 LTSC 2021 CPU占用率飙升?KB5017308补丁修复全攻略

本文针对Windows 10 LTSC 2021系统中因wsappx进程导致的CPU占用率异常飙升问题,提供了详细的解决方案。核心在于安装微软官方发布的KB5017308补丁,该补丁能从根本上修复系统组件缺陷,使CPU占用恢复正常。文章详解了补丁的下载、安装步骤、注意事项及安装后的验证方法,是解决此问题的权威指南。

python9snake的博客 1265

性能:如何优化一个系统的性能(总结)

系统响应变慢了,可以从CPU、内存、磁盘、网络四个维度来分析。用户态CPU使用率%usr、低优先级CPU使用率%nice。软中断和硬中断CPU。

OceanStar的博客 1437

ml307 二次开发

中移物联网旗下4g模组官方网站官方教程id=514官方客户不知道啥时候上班 早上10点也说不在服务时间内 找不到官方的sdk下载路径。

myWorld001的博客 2882

系统性能优化、性能指标、性能测试

关于性能优化相关的性能指标、性能测试、性能优化的入手七个层面

qq_38862257的博客 2963

MCU工程迁移实战:从STM32到MSPM0L1306的完整指南

在嵌入式系统开发中,MCU工程迁移是开发者常面临的核心挑战,涉及从旧平台向新芯片的完整适配。其原理在于不同MCU在硬件架构、外设寄存器映射、时钟树及开发工具链上存在差异,迁移的本质是将应用逻辑与底层硬件实现解耦。这一过程的技术价值在于提升代码复用性、降低硬件切换成本,并确保产品能快速响应供应链或技术栈变化。典型应用场景包括产品升级换代、芯片缺货替代以及技术生态统一。本文以TI MSPM0L1306为例,详解如何通过对比清单分析、DriverLib API替换及分步调试,高效完成从STM32等平台到Arm C

weixin_27625589的博客 330

c#【保姆级教程】基于System.Text.Json 支持多态类型序列化! 手把手教你实现一个通用的 PolymorphicJsonConverter!

我们需要自己实现一个继承自的转换器,在序列化时记录具体类型,在反序列化时根据类型标识还原成正确的子类对象。public abstract class WorkStepBase { /* 抽象方法等 */ }public class Person : WorkStepBase { /* 实现 */ }public class Product : WorkStepBase { /* 实现 */ }特性说明✅ 自动发现子类无需手动维护类型列表,自动扫描程序集✅ 类名映射。

一个编程的同学 425

系统性能优化5000 字干货

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法。而且不限于任何语言、框架,不过可能会用Python语言来举例。 一般性原则 依据数据而不是凭空猜测 这是性能优化的第一原则,当我们怀疑性能有问题的时候,应该通过测试、日志、profillig...

程序新视界 1063

YOLOv11改进 | 模型知识蒸馏篇 | 利用模型蒸馏改进YOLOv11进行无损涨点 | 在线蒸馏 (附代码 + 完整文件 + 解析教程)

这篇文章给大家带来的最新改进是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容,本文从YOLOv11的项目文件为例,进行详细的修改教程,文章内包括完整的修改教程,针对小白我出了视频修改教程,如果你还不会我提供了修改后的文件大家直接运行即可,所以说不用担心不会适用!模型蒸馏真正的无损涨点,蒸馏你只看这一篇文章就足够了,本文内容为在线蒸馏教程,之前的文章为离线蒸馏!

Snu77的博客 2667

性能优化指南(5000 字小结)

点击上方"IT牧场",选择"设为星标"技术干货每日送达!来源:cnblogs.com/xybaby/p/9055734.html一般性原则性能优化的层次一般性方法缓存并发惰性批量,合并更高效的实现缩小解空间性能优化与代码质量总结作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统。本文从以下几个方面来思考这个问题:性能优化的一般性原则...

ITMuch的专栏 145

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

性能测试案例:分布式架构IT系统性能异常

构建全生命周期性能风险防护体系,从架构设计、关键技术应用切入,强化性能监控能力,提升性能测试环节对系统性能的充分性了解,进而更有效的主动设计测试场景、模拟测试数据、仿真业务链路,提升系统性能防护水平。2024年某跨国企业ERP系统迁移至微服务架构后,性能下降70%,财务报表生成时间从2小时延长至7小时,并发用户数受限,导致财务部门季度结算延迟,合规风险上升。随着AI技术的成熟与云原生架构的深化,性能工程将向主动化、智能化、自适应化方向演进,IT系统性能问题已从技术细节演变为影响企业生存的关键挑战。

我的博客 851

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何管理和优化内核参数

Linux 系统中的内核参数(Kernel Parameters)对系统的性能、安全性和稳定性有很大影响。通过调整内核参数,可以优化系统性能、增强网络能力、调整内存管理等。管理和优化内核参数通常涉及以下几个步骤:1.查看当前内核参数在 Linux 系统中,内核参数通常存储在/proc/sys目录中,您可以直接查看这些参数。例如:该命令查看 IP 转发是否启用(1 表示启用,0 表示禁用)。也可以使用sysctlsysctl -a该命令会显示所有的内核参数及其当前值。2.

运维老生常谈 1413

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

分布式架构IT系统性能异常典型案例分析

随着全球数字化进程加速,金融、互联网、公共服务等领域对IT系统的依赖日益加深。 云原生、微服务、分布式架构等技术的广泛应用,虽提升了系统的灵活性与扩展性,但也带来了新的性能风险。

伤心的辣条 885

一次线上 JVM 调优实践,FullGC 40 次/天到 10 天一次的优化过程

点击关注公众号,Java干货及时送达来源 |https://blog.youkuaiyun.com/cml_blog/article/details/81057966通过这一个多月的努力,将 Ful...

方志朋的博客 556

java埋点数据库架构_干货挖掘机 | 自主可控第一步——开发语言架构统一该如何实现?...

2020年,广东移动完成了容器云平台的引入及双中心建设上线,并结合应用特性分层次完成了CRM和计费核心应用的云化及试点小系统微服务化,部署应用容器数量将超千个。面朝自主可控的云原生系统架构,我们小步快跑、稳步前进。今天IT妹邀请参与云化升级项目的技术大神,来跟大家唠唠云化工作中关键的一环——开发语言架构的统一。小板凳搬好了吗?很久很久以前……(不好意思,拿错剧本了,重来)天下大势,合久必...

weixin_30883241的博客 266

真彩色图像数据量 计算_纯干货,记录一次年数据量上亿的业务实现过程

一. 背景简述我们是一个电商平台,为了提高活跃用户量,提出了一个签到活动的案子,当然,该需求的落地交到了我手上。同一个业务的实现有多种方式,具体选择使用哪种需要从实际来考量,另外,我始终贯彻的一个原则是:而且,真正的高级用户喜欢选择能够找到的最简单的工具,直到他们认为简单的工具不适用为止。现在平台的注册用户有300+万,日活大概在30万~40万之间,所以,数据量是不可绕过的一个点。服务框架使用的是...

weixin_39722375的博客 358

深入解析YEN算法在K短路问题中的高效实现与优化策略

本文深入解析了YEN算法在求解K短路问题中的高效实现与优化策略。文章详细阐述了YEN算法通过“偏离路径”思想生成备选路径的核心原理,并提供了清晰的C++实现代码。针对性能瓶颈,重点介绍了增量修改、前缀和、优先队列与哈希去重等关键优化技巧,旨在帮助开发者应对大规模图数据下的路径规划挑战。

weixin_29223603的博客 244

【稀缺干货】1024电商大促倒计时:Yii 2系统压测与容灾预案全公开

应对1024大促高并发挑战,本文深入分享PHP Yii 2电商系统开发中的压测方案与容灾设计,涵盖负载测试、数据库优化与故障转移策略。适用于中大型电商平台性能调优,保障系统稳定。值得收藏,点击了解实战细节。

CodeIsle的博客 1055

【性能测试即将开班】Jmeter性能测试中如何设置并发数

在性能测试领域,Jmeter是一款广泛应用的强大工具,而并发数的设计则是性能测试中至关重要的一环。合理的并发数设计能够准确地模拟实际业务场景,帮助我们发现系统在高负载下的性能瓶颈和潜在问题。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 1025

PostgreSQL - 批量操作的性能优化:COPY 与批量插入

PostgreSQL 批量操作性能优化:COPY vs 批量插入 摘要 本文对比了PostgreSQL中两种高效批量数据写入方法:COPY命令和批量INSERT操作。COPY命令作为PostgreSQL原生批量导入工具,通过直接与存储层交互,跳过SQL解析阶段,显著提升性能。文章详细介绍了COPY的三种形式和工作原理,并提供了基于Java JDBC的CopyManager实现示例。同时,针对实际开发中的安全性问题,推荐使用CSVWriter进行数据格式处理。 关键结论指出:减少网络往返、降低事务数量和利用数

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

技术简历优化指南:结构化思维与STAR原则实战

技术简历作为开发者职业发展的关键载体,其核心价值在于高效展示技术能力与项目经验。通过结构化思维将简历划分为专业技能、工作经历、项目经验等模块,并运用STAR原则(Situation-Task-Action-Result)描述项目细节,能够显著提升简历的可读性与匹配度。在技术实践中,合理量化成果、突出架构设计能力、优化技术关键词密度是提升简历通过率的核心策略。对于分布式系统、微服务架构等热门技术领域,简历需要清晰展示相关技术栈的实践深度与应用场景。本文基于HR和技术面试官的双重视角,系统解析技术简历的优化方法

weixin_34033624的博客 355

干货:VLDB论文摘要-阿里技术突破性创新

阿里技术突破性创新 世界顶级大规模数据处理分析管理会议VLDB(VERY LARGE DATA BASE)于9月1日至5日在杭州举办,该会议也是也是大数据云计算领域的盛会,阿里巴巴两个团队在这个会议上分别发表论文。两篇论文分别描述了在超大规模分布式集群环境下如何保持性能稳定,以及构建大规模的数据库云(RDS)的核心技术。两篇论文代表了云技术水平处于世界前列的阿里巴巴近些年的研...

weixin_30527551的博客 195
上一篇: 做个男人,做个成熟的男人,做个有城府的男人
鹿晗的晗
博客等级 码龄16年 22粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值