程序员的“机械同感”
来源:互联网 发布:什么软件可以升级显卡 编辑:程序博客网 时间:2024/04/30 09:10
偶然在Martin Flower的博客上看到了一篇讲述LMAX架构的博文,里面有一小块提到了“机械同感”Mechanical Sympathy(不知道该怎么翻译好)。恰逢最近正在看第二版的CSAPP(Computer System: A Programmer Perspective,深入理解计算机系统),感慨万千!
“机械同感”(mechanical sympathy)来自于赛车比赛,它反映了车手对赛车有一种内在的感觉,所以他们能够赛车达到最佳状态。然而多数程序员缺少这种对编程与硬件交互的感同身受的情感。要么是没有,要么就是以为自己有,实际上却是基于很久以前硬件工作方式而建立的概念。这说得实在是太多,作为一个程序员,在写程序时是否考虑过自己的代码能否正确地运行在底层硬件上,又是否考虑过怎样榨干硬件性能让自己的代码跑得飞快,又是否考虑过自己的代码能否被人钻了空子发生安全问题。我想这三方面也许是学习硬件工作原理的最主要因素,即让自己的代码:正确、高效、安全地在硬件上跑。简单来说就是快准稳!
这同时又让我回忆起另一件事。曾经看过一些《一个操作系统的实现》写过一些汇编。一个很深的感触就是:代码万变不离其宗,无论怎样写都跳不出Intel X86的CPU和指令集。就像孙猴子跳不出如来佛的五指山一样,我们也没法写出超脱于底层硬件的代码。所以尽管软件世界风起云涌,各种新算法、新语言、新概念层出不穷,然而硬件世界确实波澜不惊。内核引导、LDT、GDT、Ring0到Ring3这些基本原理未曾变过,如此强烈的反差怎能不叫人感慨。
为了增强自己与计算机的联系,拟定了一些有意思的题目,但不知何日能够完成,先记下一笔:
Ø Redis的RDB复制对copy-on-write机制的运用
Ø Nginx中的epoll和sendfile
Ø Kafka和Varnish如何高效利用pagecache的
Ø MongoDB中的mmap模仿内存数据库
把握住朴素而永恒的经典!
- 程序员的“机械同感”
- 同感
- 同感
- 程序员成长的10个阶段--很有同感,值得赏阅和自省
- 深有同感的见解
- 一个机械程序员
- 给自己作的“程序员键盘”,DIY可编程机械键盘
- 程序员们,挑一把适合自己的机械键盘吧。。
- 同感《C有C的规则》
- 转来的贴,同感中
- 销售员要有敏锐的同感心
- 一点一点变化着!!你们有同感吗?老程序员们
- 机械指令对机械的定义
- 机械指令对危险机械的划分
- 机械冲击的原理
- 现在机械的发展方向
- 机械硬盘的延时
- 机械硬盘的延时
- 【深入浅出ios开发】UIStoryboardSegue详解
- Linux内核中常见内存分配函数
- android handle 用法
- wxWidgets 安装
- 用“逐步排除”的方法定位Java服务线上“系统性”故障
- 程序员的“机械同感”
- 深入理解SELinux SEAndroid(第一部分)
- MFC 与 CUDA 环境设置及程序运行
- CSU 1503: 点到圆弧的距离(计算几何)
- uva 116 Unidirectional TSP
- Cocos2d-x + Android + Eclipse + Windows 7
- 快速排序
- NoSQL数据库的35个应用场景
- Maximal Rectangle