thisthis帖子中,我描述了我要开发的框架。

我想实现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/

10-11 23:07