0

我用少量的测试数据(线索和答案)构建了一个运行良好的应用程序。现在我需要考虑引入一整套线索和答案,大约有 18 万条记录(这是一个文字游戏)。我当然担心速度和内存使用情况。环顾 intertubes 和我的图书馆,我得出的结论是,这可能是核心数据的工作。然而,在这种方法中,我想我可以将它作为 csv 或 xml 引入(我可以使用脚本语言从原始数据创建任何一个)。我找到了一些关于如何处理每种情况的资源。我不知道在使用 csv 与 xml 时可能会遇到的总体速度和其他问题。csv 文件大小约为 3.6 Mb,数据类型为字符串。

我知道这很接近一个非问题,但我需要一些建议,因为这两种方法都需要大量的编码承诺。所以这里有问题:

  1. 对于这种大小和特征的文件,人们会期望 csv 或 xml 是一种更好的方法吗?是否有其他一些更有意义的格式/协议/策略?
  2. 我专注于核心数据是否正确?

也许我应该在这里扔一些假代码,这样系统就不会一直警告我提出主观问题。但我必须尝试!感谢您的任何指导。链接到讨论表示赞赏。

4

2 回答 2

0

至于文件大小,与 xml 文件相比,CSV 总是更小,因为它只包含 ascii 格式的原始数据。考虑以下 3 行和 3 列。

第 1 列、第 2 列、第 3 列

1、2、3

4、5、6

7、8、9

与它的 XML 对应部分相比,它甚至不包含模式信息。它也是 ascii 格式,但 rowX 和 ColumnX 必须在整个文件中重复多次。压缩当然可以帮助解决这个问题,但我猜即使压缩,CSV 仍然会更小。

<root>
    <row1>
        <Column1>1</Column1>
        <Column2>2</Column2>
        <Column3>3</Column3>
    </row1>
    <row2>
        <Column1>4</Column1>
        <Column2>5</Column2>
        <Column3>6</Column3>
    </row2>
    <row3>
        <Column1>7</Column1>
        <Column2>8</Column2>
        <Column3>9</Column3>
    </row3>
</root>

至于您的其他问题,对不起,我无能为力。

于 2012-04-04T19:50:46.213 回答
0

这足够大,以至于 i/o 时间差异会很明显,以及 CSV 在哪里 - 什么?小 10 倍?与读取它的差异相比,处理时间差异(以更快者为准)可以忽略不计。而且 CSV 应该更快,在 I/O 之外也是如此。

是否使用核心数据取决于您希望利用核心数据的哪些特性。我猜唯一的一个是查询,这可能是值得的,尽管如果它只是从线索到答案的简单映射,您可能只想将整个内容从 CSV 文件读入 NSMutableDictionary。访问会更快。

于 2012-04-04T20:32:33.563 回答