Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Ios 在核心数据中存储400000个数据用于地铁线路查找是否不同寻常?_Ios_Xcode_Core Data - Fatal编程技术网

Ios 在核心数据中存储400000个数据用于地铁线路查找是否不同寻常?

Ios 在核心数据中存储400000个数据用于地铁线路查找是否不同寻常?,ios,xcode,core-data,Ios,Xcode,Core Data,我正在尝试制作一个地铁应用程序,它可以找到从一个车站到另一个车站的最短路径 我尝试了Dijkstra算法,每次用户选择起点站和终点站时,我都会使用几个堆样本来计算最佳路线 但我想知道是否最好将所有可能的路线存储在核心数据中,这样应用程序就不必每次计算最佳路线,而是从核心数据中获取最佳路线信息 有624个车站。和624 X 624=389376从任何车站到任何车站的现有路径 每条可能路线的信息包含如下内容: - starting station : String - end station : S

我正在尝试制作一个地铁应用程序,它可以找到从一个车站到另一个车站的最短路径

我尝试了Dijkstra算法,每次用户选择起点站和终点站时,我都会使用几个堆样本来计算最佳路线

但我想知道是否最好将所有可能的路线存储在核心数据中,这样应用程序就不必每次计算最佳路线,而是从核心数据中获取最佳路线信息

有624个车站。和624 X 624=389376从任何车站到任何车站的现有路径

每条可能路线的信息包含如下内容:

- starting station : String
- end station : String
- stations in-between : String 
- total time it takes in seconds : Double
- number of transfers : Int
etc. 
我的主要问题是:假设我已经有389376个数据,如果我将全部400,00个数据存储在核心数据中,会不会占用太多的磁盘内存?或者只是一个小问题。


我尽量避免使用Dijkstra,因为考虑到转会时间、转会偏好等需要花费大量时间。

不一定。我有几个应用程序,每个磁盘上有1GB到11GB。您的使用量似乎低于1GB

如需参考,请查看您的iPhone首选项->常规->管理存储,了解其他应用的存储使用情况


考虑到许多用户可能只有16GB的iPhone。

< P>如果你真的想存储所有这些数据,我建议你使用SQLite代替CordDATA来正确管理你的现金数据大小。有很好的包装材料可以做这个用途

您可以将数据库的大小估计为

- starting station : String (average size about 20 bytes - one byte per char)
- end station : String (average size about 20 bytes)
- stations in-between : String  (average size about 20 bytes)
- total time it takes in seconds : Double (8 bytes)
- number of transfers : Int (4 bytes) 

总计:每行72字节*400 000=27,4 Mb

假设
站点:字符串
是站点名称,最好使用有序关系,而不是“中间的站点”的串联名称。应该减少一点db大小,当然可以加快它的速度。其余部分取决于您的资源。实际上,当站点列表更新时,您可以让用户从服务器下载预先计算的路由信息和/或在设备上重新计算路由。完全静态的数据库似乎不太好,因为您希望支持用户首选项。谢谢。如果核心数据使用SQLite,从来没有考虑过使用SQLite而不是核心数据的有序关系?这里有一个链接可以回答您的问题。简而言之,核心数据生成了大量上下文,如果您不想占用大量空间,可以使用SQLite。当然,您可以使用核心数据,但它的空间要大2倍左右