首页
文章列表
标签墙
返回找工具啦
性能优化
共 119 篇文章
C++ constexpr函数在编译期与运行期的执行边界
2026-04-22 11:17:01
C++ constexpr函数在编译期与运行期的执行边界 理解 C++11引入的constexpr函数是现代C++编程的重要特性,它允许函数在编译期计算结果,提高程序运行效率。但constexpr函数并非总是在编译期执行,其执行边界由多种因素决定。 编译期执行条件 检查 constexpr函数在以下
C++
constexpr
编译期
38
0
JavaScript原型链查找为什么会有性能开销
2026-04-22 10:22:36
JavaScript原型链查找为什么会有性能开销 JavaScript 的原型链机制是实现继承和属性共享的核心方式,但在高频访问属性的场景下,深层或不规范的链式查找会带来显著的性能损耗。理解其背后的原因并掌握优化方法,是编写高性能代码的关键。 1. 理解属性查找的基本机制 在 JavaScript
JS
原型链
性能优化
35
0
Java Full GC频繁触发的排查思路:从JVM参数到代码优化
2026-04-22 05:19:45
Java Full GC频繁触发的排查思路:从JVM参数到代码优化 当生产环境的服务出现CPU飙升、接口响应超时,且监控告警提示频繁Full GC时,意味着系统正处于由于内存回收导致的停顿风险中。Full GC会暂停所有应用线程(StopTheWorld),导致系统在此时无法处理任何请求。为了快速定
Java
FullGC
JVM调优
44
0
MySQL Count(*)、Count(1)、Count(列名)的性能差异真相
2026-04-21 21:26:28
MySQL Count、Count1、Count列名的性能差异真相 在数据库优化和面试中,关于 COUNT 的讨论从未停止。许多开发者为了追求极致性能,会在写 SQL 时纠结是用 COUNT 还是 COUNT1,甚至有人认为 COUNT1 比 COUNT 更快。这些说法在现在的 MySQL 版本中大
MySQL
性能优化
Count函数
39
0
Java CompletableFuture.supplyAsync的默认线程池陷阱
2026-04-21 13:21:28
Java CompletableFuture.supplyAsync的默认线程池陷阱 在Java后端开发中,为了提高接口响应速度,常使用 CompletableFuture.supplyAsync 进行异步编排。然而,若使用不当,这个看似简便的API会成为系统性能的“隐形杀手”。当系统在高峰期出现莫
Java
并发编程
线程池
46
0
C++ consteval立即函数强制编译期求值的应用
2026-04-21 12:13:57
C++ consteval立即函数强制编译期求值的应用 consteval 是 C++20 引入的关键字,用于修饰“立即函数”。它的核心作用是强制编译器在编译阶段计算函数的结果,如果无法在编译期完成求值,编译将直接报错。这比 constexpr 更为严格,能够确保代码的绝对性能,并将计算压力从运行时
C++
C++20
立即函数
50
0
Vue3 Vapor Mode无虚拟DOM编译模式的性能提升
2026-04-21 03:18:04
Vue3 Vapor Mode无虚拟DOM编译模式的性能提升 Vue3 的 Vapor Mode 是一种全新的编译策略,旨在通过抛弃传统的虚拟 DOM(Virtual DOM)机制,进一步提升框架的运行时性能。与传统的 Vue 3 模式相比,Vapor Mode 在编译阶段做更多的工作,生成更高效、
Vue3
Vapor模式
无虚拟DOM
45
0
Vue3 watch的deep选项监听嵌套对象变化的性能开销
2026-04-20 23:28:03
Vue3 watch的deep选项监听嵌套对象变化的性能开销 在 Vue3 开发中,监听嵌套对象的变化是一个常见需求。许多开发者习惯性地给 watch 函数添加 deep: true 选项。虽然这能解决问题,但它往往带来巨大的性能开销,特别是在数据结构庞大或层级较深时。当对象发生变化,Vue 必须递
Vue3
watch
deep选项
47
0
Go语言sync.Map的read与dirty双map结构设计
2026-04-20 16:26:17
Go语言sync.Map的read与dirty双map结构设计 在Go语言中,并发安全的数据结构一直是开发者关注的问题。sync.Map作为标准库提供的并发安全map实现,其核心创新在于read与dirty双map结构设计。这种设计巧妙地平衡了读多写少场景下的性能问题。 1. 背景与问题 在Go 1
Go语言
sync.Map
并发安全
36
0
Go语言Goroutine泄漏的五种常见原因与pprof排查
2026-04-20 06:27:08
Go语言Goroutine泄漏的五种常见原因与pprof排查 Goroutine 泄漏是 Go 语言开发中导致内存占用持续飙升的最常见原因之一。当一个 Goroutine 被创建却无法退出,它占用的栈内存和堆内存引用将永远无法被垃圾回收器回收。本文将直接介绍如何使用 pprof 工具定位泄漏,并剖析
Go语言
协程
泄漏
49
0
MySQL查询缓存被移除的原因与应用层缓存替代方案
2026-04-20 04:28:22
MySQL查询缓存被移除的原因与应用层缓存替代方案 MySQL 8.0 彻底移除了查询缓存功能。这并非失误,而是基于性能权衡的必然选择。以下是深入解析其移除原因,以及在应用层构建高效缓存的实操方案。 1. 为什么 MySQL 移除了查询缓存 MySQL 的查询缓存机制简单粗暴:服务器收到 SELEC
MySQL
查询缓存
MySQL8.0
37
0
Python __slots__属性对类内存占用与属性访问的影响
2026-04-19 23:17:46
Python 默认的类实例机制通过字典 dict 存储属性,虽然灵活,但会消耗大量内存。在需要创建成千上万个实例的场景下(如游戏角色、传感器数据点),这种内存开销会变得难以承受。使用 slots 属性可以显著降低内存占用并提升属性访问速度。 以下是指南正文: 1. 理解默认机制的内存开销 Pytho
Python
内存优化
slots
50
0
JavaScript闭包导致内存泄漏的典型场景与排查方法
2026-04-19 20:15:19
JavaScript闭包导致内存泄漏的典型场景与排查方法 闭包是 JavaScript 中最强大的特性之一,允许内部函数访问外部函数的作用域。然而,如果不小心处理,闭包会轻易锁住原本该释放的变量,导致内存泄漏。以下是导致闭包内存泄漏的三个典型场景,以及使用 Chrome DevTools 进行排查和
闭包
内存泄漏
前端开发
45
0
Go语言http.Server的ReadTimeout与WriteTimeout配置
2026-04-19 10:22:36
在 Web 服务开发中,如果不合理配置超时参数,服务器极易受到“慢速攻击”或因网络抖动导致大量连接堆积,最终耗尽内存或文件描述符。Go 语言的 http.Server 提供了 ReadTimeout 和 WriteTimeout 两个核心配置来管控连接生命周期。 本文将通过实际代码和原理分析,指导你
Go语言
HTTP服务器
超时配置
43
0
TypeScript 编译速度:大型项目编译缓慢
2026-04-19 02:24:49
TypeScript 编译速度:大型项目编译缓慢 TypeScript 在大型项目中的编译速度往往会随着代码量的增加呈指数级下降。这通常是因为类型检查器需要重新解析所有文件,或者配置不当导致重复工作。解决这一问题需要从配置优化、项目拆分和工具链升级三个层面入手。 一、 诊断编译瓶颈 在动手优化之前,
TypeScript
编译速度
性能优化
40
0
Python 缓存装饰器:functools.lru_cache 的应用
2026-04-18 12:17:17
Python 缓存装饰器:functools.lrucache 的应用 在 Python 开发中,重复计算是导致程序运行缓慢的常见原因之一。如果函数的输入参数相同,且返回结果固定,重复执行该函数会浪费宝贵的 CPU 时间。functools.lrucache 装饰器是 Python 标准库中解决此问
Python
缓存
装饰器
57
0
C++ 移动构造函数在容器扩容时的调用时机
2026-04-18 05:18:00
C++ 移动构造函数在容器扩容时的调用时机 在使用 std::vector 等 STL 容器时,随着元素数量增加,容器容量耗尽后会自动进行扩容。扩容过程中,容器需要将旧内存中的元素转移到新内存中。此时,移动构造函数的调用行为直接影响程序的性能。 1. 准备演示环境:编写可追踪的测试类 为了直观地观察
C++
移动构造函数
容器扩容
43
0
C++ 性能问题:拷贝构造函数调用频繁
2026-04-17 23:15:30
C++ 性能问题:拷贝构造函数调用频繁 C++ 程序运行缓慢,往往不是因为算法复杂,而是因为在不知不觉中进行了大量的内存拷贝。每当一个对象被赋值给另一个对象、作为参数传入函数或从函数返回时,如果处理不当,就会触发拷贝构造函数。对于包含大量数据(如 std::vector 或大数组)的对象,这会带来巨
C++
性能优化
拷贝构造函数
43
0
Go 数据库问题:连接池耗尽与事务处理
2026-04-17 03:14:47
Go 数据库问题:连接池耗尽与事务处理 在生产环境中,Go 程序经常遇到 driver: bad connection 或 resource temporarily unavailable 等错误。这通常意味着数据库连接池已经被耗尽。连接池管理是高并发应用稳定性的基石,处理不当会导致程序假死或响应超
Go语言
数据库
连接池
42
0
Java 垃圾回收算法:G1与ZGC的停顿时间对比
2026-04-15 12:20:34
Java 垃圾回收算法:G1与ZGC的停顿时间对比 高并发、低延迟是现代Java应用的核心诉求。在众多垃圾回收器(GC)中,G1(GarbageFirst)长期作为JDK 8以来的默认选择,而ZGC(Z Garbage Collector)则是后来居上的低延迟新星。深入理解两者在停顿时间上的底层差异
Java
垃圾回收
G1
54
0
上一页
1
2
3
4
5
6
下一页