Microsoft无错C编程秘籍:编写高效洁净代码

需积分: 15 1 下载量 201 浏览量 更新于2024-09-23 收藏 1.11MB PDF 举报
《编写优质无错C程序秘诀:Wring Clean Code》是一本由Steve Maguire所著,Microsoft Press出版的专业书籍,旨在指导C程序员提升代码质量和减少错误。这本书介绍了微软开发高质量、无错误C程序的具体技术和方法,适合希望提高编程技能和代码可维护性的开发者。 书中内容包括但不限于: 1. **假想的编译程序**:引导读者从一个编译器的角度理解代码的执行过程,强调清晰、简洁的代码对编译器友好性的重要性。 2. **断言的使用**:鼓励程序员自定义断言来检查程序状态,确保在开发过程中及早发现潜在的问题。 3. **子系统防护**:讲解如何设计和实现安全的子系统,预防错误扩展到整个程序。 4. **程序调试**:通过逐条跟踪技术,教导如何有效地定位和修复bug,提高调试效率。 5. **用户界面设计**:以糖果机界面为例,阐述如何考虑用户体验和代码清晰度的平衡。 6. **风险管理和编码策略**:讨论如何识别并管理代码中的风险,避免潜在问题。 7. **编码中的假象**:深入剖析隐藏的代码陷阱和误导,帮助开发者养成良好的编码习惯。 8. **态度的重要性**:强调编写干净代码不仅是技术层面的要求,更是程序员的职业素养体现。 此外,书中还提供了编码检查表、内存管理示例、练习答案等实用工具,便于读者实践和巩固所学。 该书翻译成中文版,由姜静波和佟金荣翻译,麦中凡校订,电子工业出版社出版。虽然在整理过程中,由于多人合作,部分章节的代码风格可能存在差异,但整体上保持了原著的核心内容。读者在阅读过程中如有发现错误,可以通过邮件反馈以便及时修订。 这本书对于想要提升C语言编程水平,追求高质量代码的程序员来说,是一份不可或缺的参考资料。它强调了代码的可读性、可维护性和健壮性,是每个致力于编写“无错”程序的C程序员必读之作。

# 考虑增加某个计数,会不会提高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 上传