Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 对序列化整体的部分进行反序列化;反序列化对象内容而不反序列化整个对象_Algorithm_Serialization - Fatal编程技术网

Algorithm 对序列化整体的部分进行反序列化;反序列化对象内容而不反序列化整个对象

Algorithm 对序列化整体的部分进行反序列化;反序列化对象内容而不反序列化整个对象,algorithm,serialization,Algorithm,Serialization,我有一个算法,需要我以前从未见过的行为。在遍历表示文件结构的树时,我希望能够在构建整个子树(所有节点都已填充)后将其序列化,并将其存储到文件或应用程序数据中以供以后使用 困难的是,我想以这样一种方式构建系统,允许我只反序列化树结构中的单个节点,而不必反序列化最初存储的整个树 在上下文中,该算法仅用于我的应用程序在构建具有数百万个文件和目录的超大文件系统的文件结构时使用。该结构变得如此庞大,以至于将数百万个代表性文件节点加载到内存中的成本太高。我需要能够在运行时存储部分或全部树,以便减少内存足迹,

我有一个算法,需要我以前从未见过的行为。在遍历表示文件结构的树时,我希望能够在构建整个子树(所有节点都已填充)后将其序列化,并将其存储到文件或应用程序数据中以供以后使用

困难的是,我想以这样一种方式构建系统,允许我只反序列化树结构中的单个节点,而不必反序列化最初存储的整个树

在上下文中,该算法仅用于我的应用程序在构建具有数百万个文件和目录的超大文件系统的文件结构时使用。该结构变得如此庞大,以至于将数百万个代表性文件节点加载到内存中的成本太高。我需要能够在运行时存储部分或全部树,以便减少内存足迹,但是我仍然需要能够在任何给定时间检索关于树的任何部分的信息,无论它是否已序列化并存储。如果在任何时候我发现一个节点引用了树结构中的另一个节点,我需要能够查找该节点并反序列化或检索该已经存在的节点,而不必解包整个树


这会伤到我的大脑。

构建存储文件系统树的文件的一个好方法是按路径排序的(路径、序列化节点数据)对列表。然后可以使用二进制搜索查找节点。如果要快速加载给定节点的所有子节点,则应使用不同的键:(路径组件数、路径、序列化节点数据)。然后,节点的所有子节点将存储在文件的连续范围内


我自己还没有尝试过,但它似乎实现了这样的存储。

构建存储文件系统树的文件的一个好方法是按路径排序的(路径、序列化节点数据)对列表。然后可以使用二进制搜索查找节点。如果要快速加载给定节点的所有子节点,则应使用不同的键:(路径组件数、路径、序列化节点数据)。然后,节点的所有子节点将存储在文件的连续范围内

我自己还没有尝试过,但它似乎实现了这样一种存储