博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
程序员的“机械同感”
阅读量:5290 次
发布时间:2019-06-14

本文共 886 字,大约阅读时间需要 2 分钟。

偶然在Martin Flower的博客上看到了一篇讲述LMAX架构的博文,里面有一小块提到了“机械同感”Mechanical Sympathy(不知道该怎么翻译好)。恰逢最近正在看第二版的CSAPP(Computer System: A Programmer Perspective,深入理解计算机系统),感慨万千!

“机械同感”(mechanical sympathy)来自于赛车比赛,它反映了车手对赛车有一种内在的感觉,所以他们能够赛车达到最佳状态。然而多数程序员缺少这种对编程与硬件交互的感同身受的情感。要么是没有,要么就是以为自己有,实际上却是基于很久以前硬件工作方式而建立的概念。这说得实在是太多,作为一个程序员,在写程序时是否考虑过自己的代码能否正确地运行在底层硬件上,又是否考虑过怎样榨干硬件性能让自己的代码跑得飞快,又是否考虑过自己的代码能否被人钻了空子发生安全问题。我想这三方面也许是学习硬件工作原理的最主要因素,即让自己的代码:正确、高效、安全地在硬件上跑。简单来说就是快准稳

       这同时又让我回忆起另一件事。曾经看过一些《一个操作系统的实现》写过一些汇编。一个很深的感触就是:代码万变不离其宗,无论怎样写都跳不出Intel X86CPU和指令集。就像孙猴子跳不出如来佛的五指山一样,我们也没法写出超脱于底层硬件的代码。所以尽管软件世界风起云涌,各种新算法、新语言、新概念层出不穷,然而硬件世界确实波澜不惊。内核引导、LDTGDTRing0Ring3这些基本原理未曾变过,如此强烈的反差怎能不叫人感慨。

       为了增强自己与计算机的联系,拟定了一些有意思的题目,但不知何日能够完成,先记下一笔:

Ø  RedisRDB复制对copy-on-write机制的运用

Ø  Nginx中的epollsendfile

Ø  KafkaVarnish如何高效利用pagecache

Ø  MongoDB中的mmap模仿内存数据库

 

把握住朴素而永恒的经典!

转载于:https://www.cnblogs.com/xiaomaohai/p/6157669.html

你可能感兴趣的文章
head first 设计模式读书笔记 之 策略模式
查看>>
并发数据结构:迷人的原子
查看>>
JS—操作符优先级
查看>>
获取日期的相关方法
查看>>
怎样理解阻塞非阻塞与同步异步的区别?
查看>>
TFS 服务端默认端口更改
查看>>
C#字符串string的常用使用方法
查看>>
3.6.使用STC89C52控制MC20解析GPS的经纬度数据上传到指定服务器
查看>>
Could not load driverClass com.mysql.jdbc.Driver错误
查看>>
路飞学城-爬虫集训营-第一章
查看>>
技术人员应真正学会的第二课程
查看>>
[洛谷P3628] [APIO2010]特别行动队
查看>>
《集体智慧编程》第12章:算法总结
查看>>
Hbase配置运行
查看>>
【转载】"30年---我与赛灵思FPGA的故事”:ZYNQ-7000使用总结(6)——AXI接口简述...
查看>>
Jenkins系列-Jenkins通过Publish over SSH插件实现远程部署
查看>>
ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.
查看>>
Java 中int、String的类型转换
查看>>
Oracle 查看正在执行的SQL语句
查看>>
HDU 1069 Monkey and Banana
查看>>