为什么按行遍历二维数组比按列遍历快,缓存局部性如何影响程序性能?
为什么按行遍历二维数组比按列遍历快,缓存局部性如何影响程序性能? 本文先给出可直接复述的结论,再用最小代码说明缓存局部性 行优先 遍历 性能的工作方式、判断依据、项目边界和常见误区。
性能优化专题面试题第 4 页,显示第 151–200 题,共找到 340 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
为什么按行遍历二维数组比按列遍历快,缓存局部性如何影响程序性能? 本文先给出可直接复述的结论,再用最小代码说明缓存局部性 行优先 遍历 性能的工作方式、判断依据、项目边界和常见误区。
为什么 fork 一个大内存进程通常很快,什么情况下 fork 会变慢? 本文先给出可直接复述的结论,再用最小代码说明fork 性能 页表复制 开销的工作方式、判断依据、项目边界和常见误区。
大页(Huge Page)为什么能提升数据库等应用的性能? 本文先给出可直接复述的结论,再用最小代码说明Huge Page 大页 TLB 性能的工作方式、判断依据、项目边界和常见误区。
次缺页和主缺页有什么区别,如何用 minflt/majflt 判断程序瓶颈? 本文先给出可直接复述的结论,再用最小代码说明minor fault major fault 区别 性能的工作方式、判断依据、项目边界和常见误区。
为什么频繁上下文切换会降低性能,如何在压测中观测? 本文先给出可直接复述的结论,再用最小代码说明上下文切换开销 vmstat的工作方式、判断依据、项目边界和常见误区。
CPU 亲和性是什么,绑核在什么场景能提升性能? 本文先给出可直接复述的结论,再用最小代码说明CPU 亲和性 sched_setaffinity的工作方式、判断依据、项目边界和常见误区。
select、poll、epoll 在 fd 数量增长时性能差异的根源是什么? 本文先给出可直接复述的结论,再用最小代码说明select poll epoll 区别的工作方式、判断依据、项目边界和常见误区。
本机通信选 Unix domain socket 还是 TCP loopback,性能与功能差在哪? 本文先给出可直接复述的结论,再用最小代码说明Unix domain socket TCP 本机通信的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中 DEFERRABLE 约束在什么场景下需要,推迟到提交时检查有什么代价? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL DEFERRABLE INITIALLY DEFERRED 约束的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 外键的 ON DELETE CASCADE 与 ON DELETE SET NULL 该如何选择? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 外键 ON DELETE CASCADE SET NULL 选择的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中更新 jsonb 大文档的一个小字段为什么可能很慢,如何缓解? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL jsonb 更新 整行重写 TOAST 性能的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 中 json 与 jsonb 两种类型的存储和处理差异是什么,为什么生产上通常选 jsonb? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL json vs jsonb 区别的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 分区表能否挂载外部表作为分区,这种混合分区适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 分区 外部表 postgres_fdw 冷热分层的工作方式、判断依据、项目边界和常见误区。
Lighthouse 的 PWA 审计检查哪些离线相关项,常见不通过的原因有哪些? 本文先给出可直接复述的结论,再用最小代码说明Lighthouse PWA 审计 离线 检查项的工作方式、判断依据、项目边界和常见误区。
多租户知识库中,权限过滤应该放在向量检索之前、之中还是之后? 本文先给出可直接复述的结论,再用最小代码说明权限过滤 向量检索 前置过滤 后置过滤的工作方式、判断依据、项目边界和常见误区。
React 表单应该选择受控还是非受控,依据是什么? 本文先给出可直接复述的结论,再用最小代码说明React 受控和非受控表单怎么选择的工作方式、判断依据、项目边界和常见误区。
React 表单的校验应该在输入时、失焦时还是提交时触发,如何为不同字段选择时机? 本文先给出可直接复述的结论,再用最小代码说明React 表单校验 触发时机 onBlur onChange的工作方式、判断依据、项目边界和常见误区。
React 状态提升过度会带来什么问题,如何判断状态应该就近放置? 本文先给出可直接复述的结论,再用最小代码说明React 状态就近 过度提升 性能的工作方式、判断依据、项目边界和常见误区。
用 useReducer 加 Context 复用状态逻辑时,为什么常把 state 和 dispatch 拆成两个 Context? 本文先给出可直接复述的结论,再用最小代码说明React Context 拆分 state dispatch 性能 复用的工作方式、判断依据、项目边界和常见误区。
React 的 useMemo 能解决哪两类问题,为什么不能把它当作结果一定会被缓存的语义保证? 本文先给出可直接复述的结论,再用最小代码说明React useMemo 用途 缓存 语义保证的工作方式、判断依据、项目边界和常见误区。
React 并发渲染中『渲染可中断』具体指什么,中断后工作会被浪费吗? 本文先给出可直接复述的结论,再用最小代码说明React 并发渲染 可中断 时间切片的工作方式、判断依据、项目边界和常见误区。
用 React DevTools Profiler 的火焰图和排序图如何定位最耗时的组件? 本文先给出可直接复述的结论,再用最小代码说明React DevTools Profiler 火焰图 定位慢组件的工作方式、判断依据、项目边界和常见误区。
如何诊断一个组件发生了本不该发生的重渲染,根因通常有哪些? 本文先给出可直接复述的结论,再用最小代码说明React 排查 多余重渲染 原因的工作方式、判断依据、项目边界和常见误区。
通过候选人列表说明 React.memo 自定义比较器需要覆盖全部输出与事件行为,解释函数 prop 导致旧闭包的风险、不可变数据前提,以及有界逐项比较和深比较的成本取舍。
解释内联对象与箭头函数每轮产生新引用的原因,用筛选工具栏示例展示 useMemo 和 useCallback 的完整依赖,并讨论减少 props、移动对象创建位置和避免空依赖闭包错误。
用父组件计数与子组件成绩卡的示例解释 React.memo 如何逐项比较 props,区分父级更新、本地状态、Context 和重新挂载,并说明渲染次数为什么不能成为业务正确性的条件。
对照函数组件与类组件解释 memo 和 PureComponent 的比较范围,使用独立展开状态演示自身更新,说明 shouldComponentUpdate 与 arePropsEqual 返回值方向,以及迁移时的 state 合并差异。
什么情况下 React.memo 没有收益,甚至增加成本? 本文先给出可直接复述的结论,再用最小代码说明React.memo 过度使用 无收益 场景的工作方式、判断依据、项目边界和常见误区。
React 如何决定多个待处理更新的先后顺序,车道优先级模型解决什么问题? 本文先给出可直接复述的结论,再用最小代码说明React 更新优先级 lanes 调度的工作方式、判断依据、项目边界和常见误区。
React Profiler 组件如何包裹子树,onRender 回调能拿到哪些指标? 本文先给出可直接复述的结论,再用最小代码说明React Profiler onRender 参数 用法的工作方式、判断依据、项目边界和常见误区。
Profiler 报告的 actualDuration 与 baseDuration 差异说明什么优化机会? 本文先给出可直接复述的结论,再用最小代码说明Profiler actualDuration baseDuration 区别的工作方式、判断依据、项目边界和常见误区。
为什么生产环境默认拿不到 React Profiler 数据, profiling 构建有什么开销? 本文先给出可直接复述的结论,再用最小代码说明React Profiler 生产环境 开销的工作方式、判断依据、项目边界和常见误区。
为什么并发渲染要求组件渲染必须是纯函数,副作用应该放在哪里? 本文先给出可直接复述的结论,再用最小代码说明React 渲染纯函数 副作用 useEffect 并发的工作方式、判断依据、项目边界和常见误区。
React 的 render 阶段和 commit 阶段分别做什么,对性能优化有什么意义? 本文先给出可直接复述的结论,再用最小代码说明React render 阶段 commit 阶段 区别的工作方式、判断依据、项目边界和常见误区。
startTransition 标记的非紧急更新在调度上有什么不同的行为? 本文先给出可直接复述的结论,再用最小代码说明startTransition 非紧急更新 并发的工作方式、判断依据、项目边界和常见误区。
并发渲染下直接订阅外部 store 为什么会出现 tearing,useSyncExternalStore 如何解决? 本文先给出可直接复述的结论,再用最小代码说明React tearing useSyncExternalStore 外部状态的工作方式、判断依据、项目边界和常见误区。
React 19 中 startTransition 接受 async 函数(Action)后与 React 18 的用法有什么不同? 本文先给出可直接复述的结论,再用最小代码说明React 19 startTransition async Action 区别的工作方式、判断依据、项目边界和常见误区。
为什么不能把受控输入框的 value 更新包在 startTransition 里? 本文先给出可直接复述的结论,再用最小代码说明startTransition 受控输入 不能延迟的工作方式、判断依据、项目边界和常见误区。
为什么 transition 不能减少渲染的总工作量,什么场景用它没有收益? 本文先给出可直接复述的结论,再用最小代码说明transition 局限 不减少工作量的工作方式、判断依据、项目边界和常见误区。
transition 与 Suspense 配合时如何避免已显示内容被 fallback 骨架屏替换? 本文先给出可直接复述的结论,再用最小代码说明transition Suspense fallback 避免闪烁的工作方式、判断依据、项目边界和常见误区。
用 transition 优化搜索输入与用防抖优化有什么本质区别? 本文先给出可直接复述的结论,再用最小代码说明React transition 防抖 区别的工作方式、判断依据、项目边界和常见误区。
优化慢列表渲染时,useTransition 和 useDeferredValue 应该如何选择? 本文先给出可直接复述的结论,再用最小代码说明useTransition useDeferredValue 选择的工作方式、判断依据、项目边界和常见误区。
把每次渲染都新建的内联函数放进 useEffect 依赖数组会导致什么问题,如何修复? 本文先给出可直接复述的结论,再用最小代码说明useEffect 依赖 函数 每次执行 useCallback的工作方式、判断依据、项目边界和常见误区。
为什么只用 useCallback 而子组件没有 memo,仍然阻止不了子组件重渲染? 本文先给出可直接复述的结论,再用最小代码说明useCallback 配合 memo 才能生效的工作方式、判断依据、项目边界和常见误区。
useCallback 解决了什么问题,它的返回值在渲染之间如何保持? 本文先给出可直接复述的结论,再用最小代码说明useCallback 函数引用 缓存的工作方式、判断依据、项目边界和常见误区。
useCallback 的依赖数组写错为什么会产生读取到旧 state 的过期回调? 本文先给出可直接复述的结论,再用最小代码说明useCallback 过期闭包 依赖的工作方式、判断依据、项目边界和常见误区。
useDeferredValue 在组件首次渲染时是否会产生延迟效果? 本文先给出可直接复述的结论,再用最小代码说明useDeferredValue 首次渲染 相同值的工作方式、判断依据、项目边界和常见误区。
为什么 useDeferredValue 通常要和 React.memo 配合才能真正看到性能收益? 本文先给出可直接复述的结论,再用最小代码说明useDeferredValue memo 配合 收益的工作方式、判断依据、项目边界和常见误区。
useDeferredValue 返回的滞后值在渲染过程中经历哪两个阶段? 本文先给出可直接复述的结论,再用最小代码说明useDeferredValue 滞后值 两阶段渲染的工作方式、判断依据、项目边界和常见误区。
使用 useDeferredValue 时如何判断并提示用户当前展示的是过期内容? 本文先给出可直接复述的结论,再用最小代码说明useDeferredValue 陈旧内容 isStale 提示的工作方式、判断依据、项目边界和常见误区。