绕过 dok_matrix.get 类型检查
Bypass dok_matrix.get type checking
我程序的 运行 时间的 16% 花在了 scipy/sparse/sputils
的 isintlike()
函数中。所有对 isintlike()
的调用都来自对 dok_matrix.get()
的调用(占 运行 时间的 20%)。我知道我用 get()
调用的索引是整数,所以我实际上不需要类型检查。
我试图通过使用 x[coords]
而不是 x.get(coords)
来绕过它,但这实际上减慢了我的程序。我猜它在幕后调用 get()
增加了开销。
我不打算减少对 dok_matrix.get()
的调用次数,所以这是目前的瓶颈。有什么方法可以绕过这种类型检查吗?
你可以直接调用dict
基础class方法,绕过类型检查:
dict.get(dok_matrix, coords)
我程序的 运行 时间的 16% 花在了 scipy/sparse/sputils
的 isintlike()
函数中。所有对 isintlike()
的调用都来自对 dok_matrix.get()
的调用(占 运行 时间的 20%)。我知道我用 get()
调用的索引是整数,所以我实际上不需要类型检查。
我试图通过使用 x[coords]
而不是 x.get(coords)
来绕过它,但这实际上减慢了我的程序。我猜它在幕后调用 get()
增加了开销。
我不打算减少对 dok_matrix.get()
的调用次数,所以这是目前的瓶颈。有什么方法可以绕过这种类型检查吗?
你可以直接调用dict
基础class方法,绕过类型检查:
dict.get(dok_matrix, coords)