已经干完了还要改进吗

脚本写完要不要优化?是只做到有?还是做到先有后优?
提出的需求不太细致,只按照关键项完成了;但完成后有又许多优化方向,这些优化可以使得程序更好用;这时改怎么做?

  • 要继续优化这个已经实现关键功能的脚本?

你有多余的时间,闲着也是闲着,就优化呗,优化的经验多了,下次实现的时候就可以直接按最优解来,可以节约未来的时间
如果你没时间,那就先别忙着折腾
优化有许多方向
“优化”这个词本身就容易误导人
因为空间和时间都是有限的,要么你用空间换时间,要么你用时间换空间
只要不是代码写的太烂,其实空间和时间都不应该存在浪费的
你到底关心什么指标,就去优化那个指标,相应的其他指标就必须让步
不搞清楚什么指标是最关心的,胡乱优化,只会越优化越糟糕
-=-=-=-
比如那些3A大作,你以为的优化是全面提升性能,实际上要做的就是牺牲一部分视野中的分辨率以提高帧数
或者牺牲帧数提高画质
-=-=-=
回到你写的脚本问题
你关心响应速度,那就要多占用线程,以最短的时间完成任务
而如果你关心的是占用资源的多少,那就应该反过来,任务全放队列,单线程慢慢执行

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7438109
  • 这篇博客也不错, 你可以看下自动化脚本搭建和入门编写需要注意的几个点,大大减少需要返工的时间
  • 除此之外, 这篇博客: 特征怎么离散化?为什么需要离散化?中的 特征离散化 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 连续特征离散化的基本假设,是默认连续特征不同区间的取值对结果的贡献是不一样的。

    特征的连续值在不同的区间的重要性是不一样的,所以希望连续特征在不同的区间有不同的权重,实现的方法就是对特征进行划分区间,每个区间为一个新的特征。常用做法,就是先对特征进行排序,然后再按照等频离散化为N个区间。

  • 您还可以看一下 张传波老师的软件设计是怎样炼成的?课程中的 什么是漂亮的软件设计?小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    在已经完成关键功能的脚本后,进行进一步优化可以提升脚本的性能和用户体验。以下是一些可以考虑的优化方法:

    1. 编写高效的算法和代码:
    2. 使用合适的数据结构和算法,减少时间和空间复杂度。
    3. 减少重复计算和不必要的操作。
    4. 使用更高效的库和函数,例如使用numpy代替python内置的列表操作。

    5. 并行化和多线程处理:

    6. 如果脚本中存在需要处理大量数据或计算密集型任务的部分,可以考虑并行化和多线程处理来加速计算过程。
    7. 使用并行化库(如multiprocessing)或分布式计算框架(如Dask)来实现并行计算。

    8. 内存和资源管理:

    9. 对于处理大量数据的脚本,可以考虑优化内存使用。例如,避免不必要的数据复制和存储,使用流式处理等方法。
    10. 释放不再需要的资源和对象,避免内存泄漏。

    11. 编写可扩展和模块化的代码:

    12. 设计良好的架构和模块,便于代码的维护和扩展。
    13. 使用适当的设计模式和代码规范,使代码更加可读和易于理解。

    14. 引入缓存机制:

    15. 对于需要频繁读取或计算的数据,可以引入缓存机制来缓存结果,减少重复计算的时间。

    16. 进行性能测试和优化:

    17. 使用性能分析工具,如profiler,来找出脚本中的性能瓶颈。根据性能分析结果,有针对性地进行代码优化。

    18. 用户体验的优化:

    19. 添加友好的界面或日志输出,提供清晰的错误信息和反馈。
    20. 考虑用户输入的容错处理,避免程序崩溃或异常情况。
    21. 优化代码的可维护性和可读性,减少潜在的bug和错误。

    总之,对于已经实现关键功能的脚本,优化可以提升脚本的性能和用户体验,但需要根据具体情况进行权衡和决策。在优化之前,可以先满足基本功能,然后根据需求和资源情况,决定是否进行进一步的优化。