Steve Maguire的《Wring Solid Code》:重温80年代微软卓越编程实践

需积分: 0 0 下载量 61 浏览量 更新于2024-11-28 收藏 476KB PDF 举报
"《完美程式设计指南》(Wring Solild Code) 是一本由Steve Maguire撰写的专业书籍,书中详述了作者在1986年为开发麦金塔版Excel时的编程经验和实践。当时,Microsoft的商业应用团队正在快速发展,面临诸多问题,Steve以这本书记录了解决这些问题的方法,特别是对于如何在当时的特殊环境下编写高质量代码提供了宝贵的见解。 1981年,作者加入微软,作为商业应用软件团队的一员,参与了Multiplan的开发。团队在Windows系统尚未普及的时代,采用C语言进行核心产品开发,这在当时是非常罕见的做法。他们在一个大房间中使用Unix驱动的PDP-11电脑进行编辑和编译,将C语言源码转换为p-code,然后针对不同的微处理器如8080、6502等创建专用的p-code解释器,实现了跨平台的开发。团队成员分工明确,包括环境开发人员编写p-code解释器、编译器开发者以及专门负责各产品的程序员。 1983年底,团队已经能够为多种架构提供运行环境,他们的目标是销售预装软件的个人电脑,这与当时市场上的主流做法有所不同。《完美程式设计指南》可能会深入探讨这些经历中关于代码质量控制、模块化设计、错误处理、性能优化以及团队协作的最佳实践,这些都是现代软件工程的重要组成部分。阅读这本书,读者可以了解到如何在早期计算机时代编写出稳定、高效且易于维护的代码,这对于今天的程序员仍然具有很高的参考价值。"

# 考虑增加某个计数,会不会提高socre import numpy as np from sklearn.linear_model import LinearRegression # from sklearn.metrics import mean_squared_error file_soft = "/home/maillee/chip_temp_predict/data_handle/ftc_to_select_event/soft_event_ftc.xlsx" file_hard = "/home/maillee/chip_temp_predict/data_handle/ftc_to_select_event/hard_event_ftc.xlsx" file_hard_cache = "/home/maillee/chip_temp_predict/data_handle/ftc_to_select_event/hard_cahce_event_ftc.xlsx" pd_data_soft = pd.read_excel(file_soft,index_col=0) pd_data_hard = pd.read_excel(file_hard,index_col=0) pd_data_hard_cache = pd.read_excel(file_hard_cache,index_col=0) pd_y = pd_data_hard_cache['cores-power'] not_selected_event = ['branch-misses','bus-cycles','cache-misses','instructions', 'ref-cycles','L1-dcache-load-misses', 'L1-dcache-stores','L1-icache-load-misses', 'LLC-load-misses','LLC-store-misses','LLC-stores', 'branch-load-misses','dTLB-load-misses','dTLB-loads', 'dTLB-store-misses','dTLB-stores','iTLB-load-misses', 'iTLB-loads','node-load-misses','node-loads','node-store-misses', 'node-stores','alignment-faults','bpf-output','cgroup-switches', 'cpu-migrations','dummy','emulation-faults','major-faults','minor-faults', 'page-faults','task-clock',] count =0 pd_x = pd.concat([pd_data_hard,pd_data_hard_cache,pd_data_soft],axis=1,join='outer') for i in not_selected_event: count = count+1 pd_x =pd.concat(pd_x[i],pd_x[['cpu-clock','context-switches', 'branch-instructions','cpu-cycles','cache-references', 'L1-dcache-loads','LLC-loads','branch-loads']],axis=1,join='outer') model = LinearRegression().fit(pd_x, pd_y) # print(model.score(pd_x,pd_y)) #R2 score y_pred = model.predict(pd_x) # plt.plot(y_pred) # plt.plot(pd_y) mse = mean_squared_error(pd_y, y_pred) print(count,i,model.score(pd_x,pd_y), mse,'\n') woatis wring

2023-06-07 上传