首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用PyPy或Shedskin加快现有Python的部分速度

使用PyPy或Shedskin加快现有Python的部分速度
EN

Stack Overflow用户
提问于 2012-06-09 03:23:28
回答 2查看 1.8K关注 0票数 5

我期待着给现有的应用带来速度的改进,我正在寻找关于我可能的选择的建议。该应用程序是用Python编写的,使用wxPython,并与py2exe打包(我只针对windows平台)。应用程序的某些部分是计算密集型的,在解释的Python中运行得太慢。我不熟悉C,所以移植代码的部分对我来说并不是一种选择。

因此,我的问题基本上是,我是否有一个清晰的画面,我的选择,我在下面概述,或我是否从错误的方向来处理这个问题?

  • 与Pypy一起运行:今天,我开始试验pypy --结果令人兴奋,因为我可以从pypy解释器运行大部分代码,并且我看到了5x+速度的提高,没有任何代码更改。但是,如果我正确理解,(a)支持wxpython的Pypy是仍在进行中,(b) i 无论如何,无法将其编译到exe以进行分发。。所以,除非我搞错了,这对我来说似乎是不允许的?没有办法打包东西,所以它的一部分用pypy执行?
  • 将代码转换为RPython,并使用pypy进行翻译,因此下一个选项似乎实际上是将部分代码重写为pypy受限语言,这似乎是一项相当大的工作。但是如果我这样做,那么代码的一部分就可以编译成可执行文件(?)然后我可以通过ctype (?)访问代码。
  • 其他受限选项 Shedskin在这里似乎是一种流行的选择,这更适合我的需求吗?其他选项似乎是Cpython、Psyco和Unladen,但它们都已被取代或不再维护。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-09 03:44:11

使用PyPy确实排除了py2exe和类似的工具,至少在移植之前是这样的(AFAIK在这方面没有有效的工作)。不过,由于不需要安装PyPy二进制文件,您可能会有一个更复杂的发行版,它包括您的PyPy源代码和PyPy binary+stdlib,并且使用一个小包装器(批处理文件、可执行文件)来简化启动。我不能评论WxPython on PyPy是否已经成熟到可以使用,但是如果您描述您的情况,也许pypy、wxpython或任何一个IRC通道上的某个人可以给出建议。

在我看来,将您的代码转换为RPython是不可行的。翻译工具链实际上不是一个用于通用开发的工具,生成一个用于嵌入/ctype的C dll似乎并不简单。而且,RPython代码实际上是低级别的,使您的Python代码受到足够的限制可能相当于重写其中的一半。

至于其他受限制的选项:您似乎把CPython (用C编写的原始Python解释器)和Cython (一种类似Python的语言的编译器,它发射适合于CPython扩展模块的C代码)混为一谈。这两个项目都很活跃。我对Shedskin不是很熟悉,但它似乎是一个开发整个程序的工具,很少或根本没有与非受限Python代码的交互。Cython似乎更合适:虽然它需要手动类型注释和低级代码才能获得真正好的性能,但是从Python中使用它是很简单的:项目的目的就是生成扩展模块。

票数 6
EN

Stack Overflow用户

发布于 2012-06-09 04:37:55

我肯定会研究Cython,我一直在玩它,并且看到了比纯python快100倍的速度。首先使用配置文件模块查找瓶颈。通常,当去Cython时,循环是提高速度的最大机会。您还应该查看是否可以在Numpy中而不是循环中使用数组/向量操作,如果是这样的话,也会给性能带来极大的提升。例如:

代码语言:javascript
运行
AI代码解释
复制
a = range(1000000)
for i in range(len(a)):
    a[i] += 5

很慢真的很慢。另一方面:

代码语言:javascript
运行
AI代码解释
复制
a = numpy.arange(10000000)
a = a +5

很快,真的很快。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10960576

复制
相关文章
AppleWatch开发入门七——watchOS中通知的应用
        在iOS系统中,支持的通知有两种类型:本地通知和远程通知。本地通知多用于计时类通知,远程的又称推送,多用于一些提示动态的提示信息。这里有相关通知的一些知识总结:
珲少
2018/08/15
1.5K0
C语言打印short、long、long long和unsigned类型整数[通俗易懂]
要打印unsigned int 数字,可以使用%u符号。打印long数值,可以使用%d 格式说明符。如果系统的 int 和 long 类型具有同样的长度,使用%d 就可以打印 long 数值,但是这会给程序移植到其他系统(这两种数据类型的长度不一样的系统)带来麻烦,所以建议使用 %ld 打印 long 数值。在x和o符号前也可以使用l前缀,因此 %lx表示以十六进制格式打印长整数,%lo 表示以八进制格式打印长整数。请注意,尽管在C中常量后缀可以使用大写和小写,但格式说明符只能使用小写字母
全栈程序员站长
2022/09/06
13K0
C语言打印short、long、long long和unsigned类型整数[通俗易懂]
Long Short term memory unit(LSTM)
LTSM计算公式如下: C~&lt;t&gt;=tanh(Wc[C&lt;t−1&gt;,x&lt;t&gt;]+bc)\tilde{C}^{&lt;t&gt;}=tanh(W_c[C^{&lt;t-1&gt;}, x^{&lt;t&gt;}]+b_c)C~<t>=tanh(Wc​[C<t−1>,x<t>]+bc​) Γu=σ(Wu[C&lt;t−1&gt;,x&lt;t&gt;]+bu)\Gamma_u=\sigma(W_u[C^{&lt;t-1&gt;}, x^{&lt;t&gt;}]+b_u)Γu​=σ(Wu​[C<t−1>,x<t>]+bu​) Γf=σ(Wf[C&lt;t−1&gt;,x&lt;t&gt;]+bf)\Gamma_f=\sigma(W_f[C^{&lt;t-1&gt;}, x^{&lt;t&gt;}]+b_f)Γf​=σ(Wf​[C<t−1>,x<t>]+bf​) Γo=σ(W0[C&lt;t−1&gt;,x&lt;t&gt;]+bo)\Gamma_o=\sigma(W_0[C^{&lt;t-1&gt;}, x^{&lt;t&gt;}]+b_o)Γo​=σ(W0​[C<t−1>,x<t>]+bo​) C&lt;t&gt;=ΓuC~&lt;t&gt;+(1−Γu)C&lt;t−1&gt;C{&lt;t&gt;}=\Gamma_u\tilde{C}^{&lt;t&gt;}+(1-\Gamma_u)C^{&lt;t-1&gt;}C<t>=Γu​C~<t>+(1−Γu​)C<t−1> a&lt;t&gt;=Γo∗C&lt;t&gt;a{&lt;t&gt;}=\Gamma_o*C^{&lt;t&gt;}a<t>=Γo​∗C<t>
Steve Wang
2019/05/26
5550
你想知道的 Watch App 开发
你创建的 Apple Watch 工程由两个相关的 bundle 组成:一个 Watch app bundle 和 一个WatchKit extension bundle。Watch app bundle 里面包含了 storyboards 以及一系列与你的app 界面相关的资源文件。WatchKit extension bundle 位于 Watch app bundle 内,包含用于管理这些界面和响应用户互动的代码。这两个包统称为 Watch app。你发布的 Watch app 存在于你的iOS 应用程序中,iOS app 会将watch app 的应用程序复制到用户的Apple Watch中,然后在本地运行。
HelloWorld杰少
2022/08/03
1K0
仿Apple Watch时钟动画
分享一个从朋友网站发现的时钟,HTML5仿Apple Watch时钟动画 首先这个钟是自适应的,适合电脑,手机,平板。也适合当博客右侧栏挂件 emlog右侧栏时钟挂件教程: 首先找到侧边
Youngxj
2018/06/07
1.1K0
Apple Watch颠覆了什么 ?
苹果手表从上周开始陆续到货了,最近这几天的一个热门话题自然就是苹果手表的真机上手体验。 尽管苹果手表最贵的Edition版可以达到12万,但运动款真心不算贵,定价三千块钱不到,也就是国内市场一部中高
机器人网
2018/04/19
7820
Apple Watch颠覆了什么 ?
Apple Watch平台认知与产品设计 - 腾讯ISUX
时至今日,Apple Watch已然高调进入我们的视野,却仍未正式进入我们的世界,绝大多数人的信息来源仍限于Apple官方的介绍。大家有期许,有探索,也有失望。持负面态度者的普遍看法是,“这些事情在iPhone上都能做…手机屏幕那么大,看起来更爽用起来更舒服…令人心塞的续航能力仅支持5个小时的高强度使用…买它何用…”,而乐观者则普遍相信作为Apple设备生态圈的新生力量,Watch在技术上虽尚未成熟,却具有其他设备难以比拟的优势,并且会像前辈们那样欲扬先抑,在恰当的时间点爆发于消费市场。 失望者从很大程度上
腾讯ISUX
2018/06/29
8480
Apple Watch平台认知与产品设计
作者:C7210,UX玩家、交互设计师、猫奴、guitar fucker,现就职于腾讯ISUX(上海) 时至今日,Apple Watch已然高调进入我们的视野,却仍未正式进入我们的世界,绝大多数人的信息来源仍限于Apple官方的介绍。大家有期许,有探索,也有失望。持负面态度者的普遍看法是,“这些事情在iPhone上都能做…手机屏幕那么大,看起来更爽用起来更舒服…令人心塞的续航能力仅支持5个小时的高强度使用…买它何用…”,而乐观者则普遍相信作为Apple设备生态圈的新生力量,Watch在技术上虽尚未成熟,却
腾讯大讲堂
2018/02/12
1.2K0
Apple Watch平台认知与产品设计
Apple Watch不是可穿戴设备的全部
原创2015-04-02罗超 智能手环们已人人自危,因为除了更便宜,在手表面前它们已没有什么优势,手表完全可以实现运动记录、睡眠监测、人体健康指数量化等功能,在此之外拥有手环无法具备的信息、应用诸多功能,对手环替代效应明显。因此,已有手环在尝试转向智能手表。 以Google Glass为代表的智能眼镜更是全线溃败。除了难以解决发热等技术问题外,它们的使用方式很难被消费者所适应,脸上戴着一个沉重的电子设备,还是有些异类。从Google宣布放弃Google Glass来看,智能眼镜基本已被宣布死刑。 还有一类是
罗超频道
2018/04/28
5100
Apple Watch的9个省电小技巧!
用苹果表的宝子们,最大的烦恼可能就是每天都得充电了。虽然Apple Watch Series 7上了快充,但依旧摆脱不了电池焦虑。
Java极客技术
2022/12/04
4.7K0
Apple Watch的9个省电小技巧!
zookeeper Watch丢通知故障的定位
在下面的描述中,ZK指的是zookeeper,Watch丢通知故障简称为丢消息,因个人水平的原因,文章中定位出的原因,未必是真实的原因,仅供参考。
谢盼
2020/03/24
2.9K0
Power BI 模拟Apple Watch 环形图
左侧的环形图使用Power BI内置图表即可实现。中部的三个环形嵌套前期在讲小米的图表时涉及过(Power BI模拟小米运动APP三环效果),这里不再重复。右侧的环形图值得拿出来单独说明下,下方是Power BI实现效果。
wujunmin
2022/12/13
6330
Power BI 模拟Apple Watch 环形图
C语言中char、short、int、long各占多少字节
以下是windows操作系统,32位机下的代码测试结果(32位机中,指针占4个字节,如变量e):
全栈程序员站长
2022/08/22
4.8K0
C语言中char、short、int、long各占多少字节
长短期记忆网络 – Long short-term memory | LSTM
长短期记忆网络——通常被称为 LSTM,是一种特殊的 RNN,能够学习长期依赖性。由 Hochreiter 和 Schmidhuber(1997)提出的,并且在接下来的工作中被许多人改进和推广。LSTM 在各种各样的问题上表现非常出色,现在被广泛使用。
easyAI
2019/12/18
2.2K0
长短期记忆网络 – Long short-term memory | LSTM
iWatch开发:WatchOS 消息推送教程
在watch 中,通知是和iPhone 同步的,在iPhone上的APP收到通知的同事,也会默认推送到iWatch 上,基于watch 的穿戴性,对用户来说,它上面的通知信息将比iPhone更及时。
HelloWorld杰少
2022/08/03
1.4K0
iWatch开发:WatchOS 消息推送教程
手把手教你制作Apple Watch App
北京时间2015年3月10日凌晨,Apple Watch正式对外发布,作为苹果公司的最新款产品,Apple Watch官网对两款国产应用进行了推荐,携程旅行App是其中之一。
携程技术
2018/02/23
1.7K0
五种适合在Apple Watch上玩的游戏
---- Apple Watch很快就要到大家手里了(某些人),我们很快就可以用它收邮件,计算卡路里,发送自己的心跳去吓唬朋友——这一切都来自一只舒适的腕表。 但我们真的应该考虑在Apple Watch上玩游戏吗?答案当然是“应该”。但这并不意味着所有类型的游戏都适合。 一些传统游戏已经移植到了Apple Watch上。类似Flappy Bird的简单游戏,另外一些诸如Trivia Crack(答题类游戏)和Rules!(消除类游戏)的益智类游戏已经确定会推出适配Apple Watch的简化版本。
机器人网
2018/04/19
3.2K0
五种适合在Apple Watch上玩的游戏
点击加载更多

相似问题

模拟器上的Apple watch short-look通知

15

Apple watch通知-点击通知

11

为Apple Watch推送通知

12

来自Apple Watch的触发通知

12

是否有针对独立Apple Watch应用程序的推送通知服务?

129
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文