中山网站开发,网页设计作品论文,高端人才招聘网站,wordpress改变上传目录权限首先声明#xff0c;这不是写一个高性能应用的唯一选择#xff0c;只是自己实践后的一些心得分享。开发前定个小目标有目标的好处是不会降配开发#xff0c;也不会过度开发目标指标#xff1a;并发数#xff0c;TPS#xff0c;响应时间等1、模块独立性让路高性能#xf… 首先声明这不是写一个高性能应用的唯一选择只是自己实践后的一些心得分享。开发前定个小目标有目标的好处是不会降配开发也不会过度开发目标指标并发数TPS响应时间等1、模块独立性让路高性能在做业务模块逻辑时通盘考虑必要时业务功模块的独立性要为高性能让路比如对集合的操作如果多个模块里都要循环大集合不如为了性能在一次循环中把不同的功能都搞定。2、化身硬件在开发过程中要熟悉所使用的api要站在CPU内存文件IO或网络IO的角度思考这样的代码谁会先受不了会不会在关键时刻闹情绪如果吃不准一定要花点时间做demo验证自己的担忧。还要优化代码缩短代码执行路径减轻硬件们的工作量能一次干完的就一次干完不折腾硬件们比如能用字典唯一定位元素不要去遍历List去找一个元素虽对小集合来说不是事但涓涓细流汇集成河防微杜渐很有必要。3、放大放远思维很多时候当前代码执行没有问题随着时间的推移就会变成灾难因为时间越长拥有的数据会变多使用的用户也会变多当积累到一个临界点就会爆发一些开发时没有出现的问题所以不如在写代码时就按照目标放大放远服务的承受量一定在开始时就对自己狠点。4、边开发边测试在写代码时关注每个模块的执行时间使用资源情况对一次用时过长的api一定要想办法优化。有一次我用了一个加密算法执行时长是2ms当时觉得还行但对于一个web api来说这是一个灾难一是这个加密算法在一次调用中需要几次调用再有就是高并发时是否还是用时2ms所以在后期集成测试时我的代码就出问题了响应时间提不上来后来换了一个算法也就2µs响应时间一下就降了下来所以要边写代码边测试关注自己的模块怀疑自己模块的性能。应该控制核心模块在1ms以下辅助模块在µs级别。还要时不时压自己的代码一把做到且coding且testing。5、磨合配置在高性能应用中一定少不了一些高性能组件配合使用像RedisQueueMemoryDB或自己的应用也有一堆的配置可能在开发阶段或功能测试阶段甚至性能测试阶段都不会有事但上了生产出事了因为测试场景绝对不可能等于生产环境所以这些配置合适与否不可能通过测试出来或者就根本想不到这种场景所以一定要给服务上全方位监控在服务上线前期做到贴身照顾护送几个运行周期以便调整磨合配置的准确性。