在应用程序之间共享数据 - 共享内存 vs D-Bus vs 文件操作

3
考虑这样一种情况,两个应用程序需要共享数据。我能想到三种方法:
  1. 共享内存(允许使用 Boost)
  2. D-Bus (允许使用 glib/Qt 实现)
  3. 在两个应用程序之间进行文件操作,使用一个共同的文件。
Q1. 如果要共享的数据非常大(例如 10K 首歌名),哪种方法应该是最好的?
Q2. 相对于其他方式,执行文件操作会影响速度吗?因为硬盘会被涉及到。
Q3. 是否有其他速度更快的方法?
实现语言 - C++
1个回答

2
你可以考虑使用QtSql模块来使用数据库,特别是SQLite数据库。 SQLite数据库是一个跨平台的进程内数据库引擎。这使得你可以轻松存储结构化数据,并在进程之间并发且安全地访问它,这些进程甚至可以用不同的语言编写。
SQLite可以很好地处理数百万条记录,速度非常快且可靠。 主要问题在于同时写入的进程会使用数据库级别锁定,因此在写操作期间,没有其他进程可以读取或写入数据库。
使用QtSql的另一个好处是,在将来可以通过使用诸如PostgreSQL或MySQL等数据库服务器轻松地使程序在网络上工作。

谢谢回复。但由于一些项目限制,我将无法使用SQLite。如果有人能从上面给出的选项中选择最佳方法呢? - Amit Tomar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接