DropBox使用Python的6个经验分享

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

创新互联建站专注于中大型企业的成都做网站、成都网站设计和网站改版、网站营销服务,追求商业策划与数据分析、创意艺术与技术开发的融合,累计客户上千余家,服务满意度达97%。帮助广大客户顺利对接上互联网浪潮,准确优选出符合自己需要的互联网运用,我们将一直专注品牌网站建设和互联网程序开发,在前进的路上,与客户一起成长!

1.1 Use Python

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

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

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

优点:

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

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

缺点:

别傻了

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

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. )

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

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

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

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

1.3 早发布 (Release Early)

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

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

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

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

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

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

有许多工具调优 CPU 。

CPU 优化通常限于小代码段

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

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

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

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

很难,因为:

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

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

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

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

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

原文链接:http://www.linuxidc.com/Linux/2011-04/34748.htm

网站题目:DropBox使用Python的6个经验分享
网址分享:http://www.shufengxianlan.com/qtweb/news2/236802.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联