对于我的代码,我需要快速解决许多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吗?
答案 0 :(得分:1)
你很可能没有给PyPy足够的时间来热身。如果我在循环中运行diop_DN(13, -4)
,则需要超过50次迭代才能达到收支平衡,但渐近时间比CPython快约5倍。如果像在实际代码中那样,你没有使用相同的参数进行所有调用,那么预热可能需要更长的时间。 (使用PyPy 5.6测量的时间;使用较旧的PyPy 5.1,预热可能会更长一点。)