性能优化

编译时间优化

减少模板实例化

  • 减少使用次数
  • 减少嵌套层数

多线程编译wasm

编译单个较大的wasm文件是一项很耗时的工作,可以将一个wasm拆分成耦合度最低的n个wasm文件(n为编译线程数),在多个线程同时编译,最后再放到一个线程中链接

启动时间优化

  • 预取资源

IO优化

尽量避免一次将整个文件读入内存,尤其是大文件,应该分段读取

零拷贝

减少上下文切换次数

Windows

  • 使用重叠I/O
  • WSASend/WSARecv批处理

函数调用优化

内联函数

使用迭代等其他方法代替递归

打表

说白了就是空间换时间,例如:伪随机数表

常数级优化

  • 尽可能使用定点数代替浮点数
  • 对于浮点数,尽可能使用乘法运算代替浮点除法,例如当除数为常数时,将除法运算写成乘这个常数的倒数

访问一维数组要比多维数组快

分支预测优化

使用likely和unlikely函数

内存对齐

缓存行对齐

缓存优化

结构优化

  • 聚合代替继承
  • 函数指针代替单函数类

nothrow化

抛出异常是比较耗时的操作,若异常不是小概率事件,请使用返回错误码等方式代替抛出异常

内存优化

栈压缩优化内存占用

池化

使用内存池和线程池

多线程优化

使用协程代替线程

锁优化

竞争激烈用悲观锁,否则乐观锁

通信优化

进程间通信使用Unix domain socket代替本机地址

网络优化

  • 设置合适的MTU
  • 路由器固件更新
  • DNS优化
  • 常用的域名写进hosts
  • 信道优化
  • (无线网络)信号放大

业务逻辑优化

使用其他验证方法替代慢哈希

参考

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容