我有一个很长的字符串存在一个文件中(它是经过我的自定义编码的数据),我想要读取并将其处理成我的特殊格式(解码)。我想知道最快的方法是什么,以便获得最终格式。我考虑了一些方法,但不确定哪种方法最好。
1)一次性读取整个字符串,然后对该字符串进行处理。
2)逐个字符从文件中读取并在读取时进行处理。
有人能帮忙吗? 谢谢
我有一个很长的字符串存在一个文件中(它是经过我的自定义编码的数据),我想要读取并将其处理成我的特殊格式(解码)。我想知道最快的方法是什么,以便获得最终格式。我考虑了一些方法,但不确定哪种方法最好。
1)一次性读取整个字符串,然后对该字符串进行处理。
2)逐个字符从文件中读取并在读取时进行处理。
有人能帮忙吗? 谢谢
TIME -------------------------------------------->
IO: READ CHAR --> wait --> READ CHAR --> wait
DECODE: wait ------> DECODE --> wait ---> DECODE ...
TIME -------------------------------------------->
IO: READ CHAR --> YIELD --> READ CHAR --> wait
DECODE: wait ------> YIELD --> DECODE ---> wait DECODE ---> ...
TIME -------------------------------------------->
IO: READ CHAR ..... READ CHAR --> FINISH
DECODE: -----------------------------> DECODE --->
这取决于解码处理。
如果您可以并行化处理,可以考虑使用map/reduce方法。将文件内容分成单独的map步骤,然后在reduce步骤中组合它们以获得最终结果。
大多数机器都有多个核心。如果处理器之间不需要通信,则可以通过拥有N个核心来将处理时间减少1/N。如果您有可以利用的GPU,则会得到真正的东西。