写于 2009 年 5 月,这里留个备份:
Last update: billy@090522-0207
前端
- 网络层优化
- 减少 DNS 查找时间
- DNS 缓存和TTL
- 启用 Gzip 压缩传输 (大于 1KB 或 2KB)
- 代理缓存
- CDN
- 所有静态请求全部分发至 CDN 节点服务器
- HTTP 优化
- 编码统一为 UTF-8 without BOM
- 减少 HTTP 请求次数
- 合理使用 304 状态码(避免下载已经存在于浏览器缓存中的数据)
- CSS Spirtes 将相关小图合并
- 外链资源合并 (JavaScript, CSS)
- 若链接为目录, 则应在某尾加上 "/" , 避免产生 301 重定向
- 添加 Expires 头
- Max-Age 和 mod_expires
- 配置 ETag
- 避免重复脚本(提高代码重用度)
- XHTML
- 所有标签必须闭合
- 压缩空白并使用Gzip输出(发布时)
- CSS 优化
- 将CSS放在顶部
- 禁止使用 @import
- 禁止使用 CSS 表达式
- 压缩并合并外链CSS(发布时)
- 选择器明确简短
- 属性简写 (如 background-color, background-image 等合并为 background)
- JavaScript 优化
- 将脚本放在底部
- 使用 DEFER 属性(FF目前不支持)
- 压缩混淆并合并(发布时)
- 使 Ajax 可缓存
- 循环, 递归, 正则等算法优化
- Flash, gif, jpeg
- Flash 以兼容性, 效率, 容量为顺序发布
- gif, jpeg 选择合适的颜色及压缩级别
后端(待定)
- 前端 PHP 应用服务器集群
- 使用 APC 缓存本地全局数据
- 使用 APC 编译为 OP Code
- 使用 hidef 提高 define 性能
- 使用 xdebug profiler 优化
- apache / lighttpd / nginx 性能优化
- 后端 Java 逻辑应用服务集群
- jboss 集群
- 同时发布为 WebService 内部接口
- 动态数据库连接池
- 避免动态反射
- JVM 优化
- memcache 集群
- Session 共享
- Consistent Hash (libketama)
- Java 和 PHP 统一存储为 PHP Native Object / JSON
- MySQL 集群
- 读写分离(在后端逻辑应用层实现)
- 故障转移(failover)
- 定时备份(cron)
- 静态文件集群
- rsync 文件同步
- API 发布标准
- 一个基类接口, 三个实现(XML, Soap, JSON)
其它
- 所有代码遵循开闭原则 (连接池除外)
- 遵循 DRY, KISS 原则

0 Comments:
Post a Comment