在this和this帖子中,我描述了我要开发的框架。
我想实现memoization策略来加快一些函数的执行。
该框架的一个重要功能应该是“记住”过去运行的计算值:假设我们编写一个程序,在其中执行带有大文本f
作为输入的字数统计函数t
。在计算了r=f(t)
(结果为r
)之后,我们遵循记忆逻辑,因此我们将(t,r)
存储在某个地方,比方说一个unordered_map
对象um
。此后,程序终止。
在下一次执行同一程序时,不需要执行昂贵的f
,因为um
已经包含(t,r)
,因此返回值r
。
所有这些的问题是如何在不同的执行中“记住” um
状态。
重要提示:
显然,这是一个示例,可以帮助您了解该框架的可能应用程序,但是任何备注应用程序也必须能够正常工作。
Write a c++ object to file是解决此问题/方案的唯一解决方案,或者还有其他解决方案?
最佳答案
数据必须存储在过程外部的某个位置,以便在过程终止后保留数据。文件系统显然是存储数据的地方,但是它也可以由其他进程存储,例如数据库管理系统或外部缓存(例如https://memcached.org/)。
大多数后端选项将数据存储为字符流。您将需要了解如何(de)serialize数据。
关于c++ - 在不同的运行中保持对象状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36720393/