DropBox使用Python的6个经验

DropBox 使用 Python 6 个经验—如何每 15 分钟存储 100 万文件

 

DropBox 15 分钟要存储 100 万文件,甚至超过了 Twitters tweet 发布数量。

下面是 DropBox 使用 Python 的经验分享:

 

1.1 Use Python

n         Dropbox 99.9% 的代码是用 Python 写的。 Python 使用在服务器端、桌面的客户端、网站控制逻辑,后端的 API 和分析

n         Android 平台,由于内存的限制不能使用 Python

n         使用 Python 语言运行单一的代码。通过使用 PyObjs WxPython types py2exe py2ap PyWin32 等工具,让 Dropbox 运行在 Windows Mac Linux 系统

n         优点:

n         开发人员通过 Python 互相沟通和表达思想

n         简单易学,易于阅读,易于编写,新人容易上手

n         缺点:

n         别傻了

n         它消耗太多的内存并且运行的太慢。在服务器端不是大问题,只要买大的机器就行。但在客户端,你别指望让老的 Power PC 用户升级设备

n         Python C 混合编程会产生问题,因为它很难跨越语言边界轮廓想象你使用固定内存和 CPU 想干什么( Coding in a mixed environment of Python and C creates problems because it's hard to profile across the language boundaries like you want to do when fixing memory and CPU problems.

n         内存碎片问题是脚本语言可能不是一个长期运行进程的好主意

 

1.2 从开始就让它工作 (Just Work Baby)

n         如果不管你是什么文件系统,是什么操作系统,什么应用程序所使用。该产品应始终只是要能工作。

n         在所支持的种类繁多的平台上,分析遇到的各种错误, Python 帮助他们进行快速的迭代。

 

1.3 早发布 (Release Early)

n         在一天内进行编码并发布它,使用 Python 很容易做到

 

1.4 在循环内使用 C ,优化 CPU 是容易的 (Use C for Inner Loops, Optimizing CPU is easy)

 

 

n           是一种解决速度太慢的问题的方法。

n           优化内部循环,以减少 CPU 时间。

n           Python 中循环与 C 中相比,多消耗 44% 时间

n           Python 的虚拟机字节码调度是很慢。

n           有许多工具调优 CPU

n           CPU 优化通常限于小代码段

 

1.5 轮询不容易扩展 (Polling 30 million clients all over the world doesn’t scale)

n         建立一个 HTTP 通知结构,以避免客户端轮询服务器。

 

1.6 自定义内存分配器,优化内存很困难

 

n         曾经有一段时间最大的问题。可以使用的大量内存但内存永远不会被释放。对于大型同步他们可以使用最多 1.5GB 的,现在他们很少使用超过 100MB 的。

n         很难,因为:

n         很少有工具为 Python C 优化内存

n         内存膨胀有很多的原因:在 Python C 代码内存泄漏,内存碎片,内存使用效率不高。

n         固定内存的低效率没有明显的帮助。他们认为有一个内存泄漏,但没有。

n         问题变成了内存碎片。内存碎片是发生在不同大小的内存块是不断被删除和分配。什么情况是连续的内存块可以不再进行分配。 CPython 没有一个垃圾收集器,所以所有的内存根本无法分配和堆内存不断增长

n         解决办法是建立一个自定义分配器。该文件的元数据对象时,做了很多的增长转移,所以明显的成果是在 C 中使用 mmap 创建自定义分配器。

 

http://highscalability.com/blog/2011/3/14/6-lessons-from-dropbox-one-million-files-saved-every-15-minu.html

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值