【发布时间】:2021-12-11 13:07:49
【问题描述】:
假设我有以下课程:
import numpy as np
class ToStringify():
DEMARCATION = "::::"
def __init__(self):
self.first_np_array = np.random.rand(30, 30, 30)
self.second_np_array = np.random.rand(30, 30, 30)
self.some_string = "string"
self.some_int = 5
def to_str_format(self) -> str:
entries = [
self.first_np_array, self.second_np_array, self.some_string, self.some_int
]
return f"{self.DEMARCATION}".join([str(entry) for entry in entries])
我已经分析了我的代码,to_str_format 占用了我总程序运行时间的大约 25%。不幸的是,to_str_format 需要输出一个字符串(无论我选择什么分界线),它将在某些我无法更改的管道中进一步消耗。我正在做一个列表理解来尝试加快速度,但除此之外我不确定我还能做什么(如果有的话)。如果有任何改变,我正在使用 python 3.9
【问题讨论】:
-
我非常乐意添加更多详细信息或说明,但目前我不知道添加什么会有所帮助。回复:关闭标志
-
我认为您的问题不需要更多细节或清晰度……而且您做事的方式可能是将几种不同的东西转换为您想要的字符串格式的最快方法。你为什么要优化它——它是你程序的瓶颈吗? Premature optimization is the root of all evil.
-
> 你为什么要优化它——它是你程序中的瓶颈吗?它是第一个 (25%) 与第二个 (19%) 相比。是的,我担心这可能是最快的
-
好吧,除了一些我怀疑只是相对较小的调整——大多数都显示在@sj95126 的回答中,我唯一能想到的另一件事是为什么要通过
class一个简单的函数就足够了。 -
啊,我应该很清楚这一点,但课堂上还有其他方法。我只是不想让人们陷入(看似)不必要的并发症