营销型网站带来,学做网站什么语言合适,偃师网络营销的概念,做兽药网站用什么图片好使用 chatGPT 优化代码并降低运行时的云成本 许多开发人员说“过早的优化是万恶之源”。
这句话的来源归功于Donald Knuth。在他的书《计算机编程的艺术》中#xff0c;他写道#xff1a; “真正的问题是#xff0c;程序员在错误的时间和错误的地方花费了太多时间来担心效率…使用 chatGPT 优化代码并降低运行时的云成本 许多开发人员说“过早的优化是万恶之源”。
这句话的来源归功于Donald Knuth。在他的书《计算机编程的艺术》中他写道 “真正的问题是程序员在错误的时间和错误的地方花费了太多时间来担心效率过早的优化是编程中万恶之源。” 这句话起源于软件开发的早期阶段当时为了优化目的而重写代码会消耗开发人员的大量时间但预计只会产生非常有限如果有的话的成本节省。
在当今时代随着生成的 AI 产品变得越来越容易获得重写代码成为一项可以非常轻松地完成的任务借助诸如 chatGPT 之类的工具。
在这个简单的示例中我将演示如何在不到一分钟的时间内优化一个小的 python 脚本开发人员方面的工作量最少同时创造显着减少运行时间的潜力从而以以下形式产生更具影响力的效果降低云运营成本。
我采用了一个简单的脚本来读取 HTTP 访问日志文件作为脚本的参数然后打印日志中每个 HTTP 响应状态代码的出现次数。
我从一个非常简单的 chatGPT 提问开始 这是 chatGPT 生成的脚本
import sys
from collections import defaultdictdef count_status_codes(log_file):status_counts defaultdict(int)with open(log_file, r) as f:for line in f:# Extract the HTTP response status code from each linestatus_code line.split()[-2]status_counts[status_code] 1return status_countsif __name__ __main__:if len(sys.argv) ! 2:print(Usage: python script.py log_file)sys.exit(1)log_file sys.argv[1]status_counts count_status_codes(log_file)for status_code, count in status_counts.items():print(f{status_code}: {count})运行原始脚本和 chatGPT 生成的脚本后我注意到一个小差异——我没有要求输出以 JSON 格式生成所以 chatGPT 只生成了一个简单的文本输出 没过多久chatGPT 就更新了脚本以创建 JSON 格式的输出。我问了以下问题 在 chatGPT 更新后脚本如下所示
import sys
import json
from collections import defaultdictdef count_status_codes(log_file):status_counts defaultdict(int)with open(log_file, r) as f:for line in f:# Extract the HTTP response status code from each linestatus_code line.split()[-2]status_counts[status_code] 1return status_countsif __name__ __main__:if len(sys.argv) ! 2:print(Usage: python script.py log_file)sys.exit(1)log_file sys.argv[1]status_counts count_status_codes(log_file)print(json.dumps(dict(status_counts), indent4))这次更新后两个脚本的输出看起来是一样的 现在是时候向两个脚本添加一些测量并再次运行它们了。我使用时间模块来测量脚本的运行时间添加以下代码
import time
## All other imports and function definitions here
start_time time.time()
main()
print(--- %s seconds --- % (time.time() - start_time))差异惊人 我们在这里看到的是一个脚本其功能与原始脚本完全相同但从运行时的角度来看性能提高了近 100 倍
显然这个例子并没有涵盖所有可能的边缘情况。例如如果每个日志条目中的值以非常规顺序写入日志则此处由 chatGPT 生成的代码不支持所需的功能而原始脚本确实解决了这种情况。必须在生成的 AI 创建代码后对其进行审查并确保原始功能没有受到任何损害。
如本例所示其含义是压倒性的。我可以想象各种类似的函数和代码片段在生产系统中作为 AWS Lambda 函数或类似资源运行每天在大规模操作中被触发数百万次。
总而言之我相信像 chatGPT 这样的生成式人工智能工具可以帮助我们减轻对过早优化代码的恐惧并在大规模生产系统中节省大量时间和云运营成本。