与pypy使用sympy时没有加速

时间:2017-02-15 03:08:36

标签: python sympy pypy

对于我的代码,我需要快速解决许多Pell方程。使用sympy 1.0和python 3.5,调用diop_DN(q, 1)以大约60个方程/秒运行。我看了diop_DN import React, { Component } from 'react'; import App from "./App" import List from "./List" class AddTodo extends Component{ constructor(){ super(); this.state = { items: [] } } addItem(e){ var itemArray = this.state.items; itemArray.push({ text: this._inputElement.value, key: Date.now() }) this.setState({ items: itemArray }) this._inputElement.value = ""; console.log(itemArray) e.preventDefault() } render(){ return( <div className="box-wrapper"> <form onSubmit={this.addItem.bind(this)}> <input href={(a) => this._inputElement = a} placeholder={this.props.placeHolder} type="text"></input> <button type="submit">Submit</button> </form> <List entries={this.state.items} /> </div> ) } } export default AddTodo; 解算器,看来它是用纯python编写的。所以我尝试使用pypy 5.1.2(python 2.7.10)和sympy 1.0运行我的代码,但令我惊讶的是它的运行速度慢了两倍。

这是预期的行为吗?不应该pypy能够更快地运行纯python吗?

1 个答案:

答案 0 :(得分:1)

你很可能没有给PyPy足够的时间来热身。如果我在循环中运行diop_DN(13, -4),则需要超过50次迭代才能达到收支平衡,但渐近时间比CPython快约5倍。如果像在实际代码中那样,你没有使用相同的参数进行所有调用,那么预热可能需要更长的时间。 (使用PyPy 5.6测量的时间;使用较旧的PyPy 5.1,预热可能会更长一点。)

相关问题