平时写代码中有哪些常见的用法会导致性能不佳呢?

[复制链接]
996 |7
揪着可爱 发表于 2023-7-26 14:16:32 | 显示全部楼层 |阅读模式
有什么小妙招能提升性能吗?比如有些代码用另一种方式写会更好?
回复

使用道具 举报

喵喵哭唧唧 发表于 2023-7-26 15:03:37 | 显示全部楼层
回复

使用道具 举报

kk 发表于 2023-7-26 15:20:30 | 显示全部楼层
喵喵哭唧唧 发表于 2023-7-26 15:03
你好~js 代码优化妙招
https://cn.bing.com/search?q=js+%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96%E5%A6%99%E ...

牛蛙
回复

使用道具 举报

阿柔 发表于 2023-7-26 18:07:54 | 显示全部楼层
cache可以重复使用的游戏对象和json对象。
回复

使用道具 举报

美颜扛把子 发表于 2023-7-26 18:20:02 | 显示全部楼层
本帖最后由 美颜扛把子 于 2023-7-26 18:21 编辑

在编写代码时,有一些常见的用法可能会导致性能不佳。以下是一些常见的使用方法,请注意避免它们:

1. 循环中的不必要计算:在循环中进行不必要的计算或重复的操作会导致性能问题。应该将这些操作移到循环外部或避免重复计算。
2. 频繁的IO操作:频繁的读写文件、网络请求等IO操作会降低性能。可以考虑使用缓存、批量操作或异步方式来减少IO负载。
3. 嵌套循环:嵌套循环会导致代码执行时间呈指数级增长。尽量避免使用多层嵌套循环,或通过使用更高效的算法来减少循环次数。
4. 错误的数据结构选择:选择不合适的数据结构也会导致性能问题。确保选择最适合特定场景的数据结构,以减少时间复杂度。
5. 内存泄漏:未正确释放不再使用的内存会导致内存泄漏,最终影响性能。需要注意及时释放不再使用的内存资源。
6. 过度使用递归:递归在某些情况下是必要的,但过度使用递归会消耗大量的内存和处理时间。尽量避免无限递归或过深递归。
7. 没有进行代码优化:代码优化可以通过使用更高效的算法、数据结构或进行代码重构来提高性能。仔细审查和优化代码,以找出可能的性能问题。
8. 频繁的字符串操作:字符串操作通常比较耗时。尽量避免在循环或频繁调用的代码中进行大量的字符串操作,可以考虑使用StringBuilder等高效的字符串处理方式。

总之,编写高效的代码需要综合考虑算法、数据结构、IO操作等方面的因素。在写代码之前,考虑代码的效率和性能问题是非常重要的。
回复

使用道具 举报

美颜扛把子 发表于 2023-7-26 18:21:34 | 显示全部楼层
当然,还有其他一些常见的用法可能导致性能不佳。以下是更多的例子:

9. 过度使用数据库操作:频繁地进行数据库查询和更新操作可能导致性能问题。可以考虑使用缓存、批量操作或优化数据库查询语句来减少数据库负载。
10. 没有合理使用索引:如果在数据库中没有正确地使用索引,查询操作可能变得缓慢。确保在数据表的关键字段上创建合适的索引,以加快查询速度。
11. 懒加载大量数据:在某些情况下,当需要时才加载数据是一种优化策略。然而,如果懒加载的数据量过大,可能会导致性能下降。请在权衡性能和内存消耗后决定是否采用懒加载。
12. 频繁的对象创建和销毁:对象的创建和销毁操作比较耗时。尽量避免在循环或频繁调用的代码中频繁地创建和销毁对象,可以考虑对象池、重用对象或使用更轻量级的对象来改善性能。
13. 使用大量的线程或进程:过多的线程或进程会增加系统的负担,降低性能。确保在使用多线程或多进程时适当控制并发量,避免过度创建线程或进程。
14. 没有使用合适的缓存策略:缓存可以显著提高应用程序的性能。然而,不正确地使用缓存或使用过期策略不合理可能导致性能问题。确保选择适当的缓存策略,并注意缓存数据的更新和失效机制。
15. 没有进行性能测试和优化:性能优化是一个持续的过程。在编写代码后,进行性能测试和分析是很重要的,以发现潜在的性能瓶颈并进行优化。

记住,性能优化需要根据具体的应用场景和需求来进行调整和优化。实际的性能问题可能因编程语言、框架、硬件环境等因素而有所不同。了解和掌握所使用语言和框架的最佳实践也是提高代码性能的关键。
回复

使用道具 举报

美颜扛把子 发表于 2023-7-26 18:23:03 | 显示全部楼层
当涉及到性能优化时,还有一些其他常见的用法可能会导致性能不佳。以下是更多示例:

16. 没有使用合适的算法:选择合适的算法对于性能至关重要。避免使用复杂度较高的算法,尽量选择更高效的算法来处理数据和解决问题。
17. 过度使用日志输出:频繁的日志输出会消耗系统资源和IO操作。确保日志输出的频率合理,并使用适当的日志级别进行控制。
18. 大规模数据处理时没有使用分批操作:当处理大规模数据时,一次性处理整个数据集可能会导致内存和性能问题。考虑使用分批处理或流式处理方式来减少内存消耗和提高性能。
19. 没有进行并发控制:并发访问可能导致资源竞争和性能问题。在多线程或多进程环境中,确保正确地进行并发控制,避免数据冲突和竞争条件。
20. 没有进行代码剖析和分析:了解代码的性能瓶颈和热点是优化的关键。使用专业的代码剖析工具来分析代码执行时间和资源消耗,以找出性能瓶颈并进行优化。
21. 没有适当处理异常情况:异常处理机制对于系统性能至关重要。确保适当处理异常情况,避免产生未捕获的异常或执行不必要的异常处理逻辑。
22. 没有进行缓存优化:缓存可以提高系统性能,但不正确地使用缓存或缓存过多的数据可能会消耗大量的内存。优化缓存策略,并使用合适的缓存失效机制来减少缓存空间占用。
23. 没有进行数据库查询优化:数据库查询性能对系统的整体性能有重要影响。使用合适的索引、优化查询语句、避免查询大量数据等方法来优化数据库查询。

请注意,性能优化的具体方法和策略会因语言、框架、应用场景等因素而有所不同。在实际优化过程中,应结合具体情况进行分析和调整。同时,对于性能优化,也要权衡代码的可读性、可维护性和性能之间的平衡点。
回复

使用道具 举报

美颜扛把子 发表于 2023-7-26 18:27:32 | 显示全部楼层
在TypeScript中,也可以采取一些代码优化的方法来提高性能。以下是一些常见的优化技巧:

1. 使用合适的数据类型:选择适当的数据类型可以减少内存占用和提高运行速度。例如,使用原始数据类型(如number、string)替代对象类型(如Object),或使用Typed Arrays来处理大量数值数据。
2. 减少对象属性访问:频繁地访问对象的属性会有一定的性能开销。可以将需要频繁访问的属性缓存到局部变量中,减少对对象的属性访问次数。
3. 避免不必要的类型转换:在类型转换时要谨慎,避免不必要的类型检查和转换操作,以减少额外的计算开销。
4. 优化循环操作:循环是性能优化的关键点。尽量避免在循环中进行耗时的操作,如IO访问、复杂的数据处理等。如果可能,可以考虑使用更高效的循环方式,如`while`循环可以比`for`循环更快。
5. 使用迭代器和生成器:使用迭代器和生成器来处理大量数据或需要延迟处理的情况,可以提高性能和内存效率。
6. 懒加载或延迟计算:延迟加载和计算可以避免不必要的资源消耗。只有在需要时才进行加载和计算,可以减少初始化和运行时的开销。
7. 使用缓存:使用缓存存储中间结果,避免重复计算或IO操作。缓存可以在后续的操作中快速获取数据,提高性能。
8. 使用异步操作:使用异步操作可以提高并发能力和系统的响应性。在适当的场景中,可以使用异步方法或异步任务来处理耗时的操作,避免阻塞线程。
9. 使用函数式编程风格:函数式编程风格可以简化代码逻辑,并提供更高层次的抽象。使用函数式编程的思想可以提高代码的可读性、可维护性和性能。
10. 使用工具进行代码分析和优化:借助工具进行代码分析和性能优化是一个不错的选择。例如,可以使用Chrome开发者工具的性能分析器来跟踪代码执行时间和资源消耗,并找出性能瓶颈。
11. 使用常量代替魔法数值:避免在代码中使用魔法数值。将这些数值定义为常量或变量,并使用它们来提高代码的可读性和可维护性。
12. 使用局部作用域和块级作用域:尽可能将变量限定在最小的作用域内,避免变量的全局污染和内存消耗。
13. 使用惰性加载:对于一些辅助模块或服务,在需要时才进行加载,以减少初始加载时的开销。
14. 使用Webpack或Rollup等打包工具进行代码压缩和优化:这些工具可以对代码进行混淆、删除不必要的注释和空格,并对文件进行压缩,减少文件大小和加载时间。
15. 避免重复计算:在需要重复计算的地方,可以将计算结果缓存起来,避免重复计算,并减少不必要的开销。
16. 使用性能更佳的算法和数据结构:对于需要频繁操作和搜索的数据,选择性能更好的算法和数据结构来提高代码的效率。
17. 避免过多的中间变量:过多的中间变量会占用内存并增加垃圾回收的成本。如果可能,尽量合并操作,减少不必要的中间变量。
18. 销毁不再使用的对象和资源:确保及时销毁不再使用的对象、关闭不再需要的连接和释放内存资源,以避免内存泄漏和资源浪费。
19. 使用编译选项进行优化:TypeScript编译器提供了一些编译选项来优化输出的JavaScript代码。例如,可以使用`--target`选项指定目标输出版本,使用`--strict`选项开启严格类型检查等。

请根据具体的应用场景和需求,结合以上优化技巧来改善代码的性能。同时,记得在进行优化之前,先进行性能测试和分析,以确定需要优化的代码部分,并确保优化不会影响代码的可读性和可维护性。
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表