热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iPhone上的SQLite临时表存储-TemporarytablestoreinSQLiteontheiPhone

IusetemporarytablesinanSQLitebasediPhoneapplication.Performancewasnotaswasrequiredso

I use temporary tables in an SQLite based iPhone application. Performance was not as was required so I looked at various candidates for optimization. Most of these worked well and had the desired effect. However, I'd also like to try moving the temporary tables from flash into memory to see if there is any improvement.

我在基于SQLite的iPhone应用程序中使用临时表。性能不是所需的,所以我查看了各种候选优化。其中大多数都运作良好并具有预期效果。但是,我还想尝试将临时表从闪存移动到内存中,看看是否有任何改进。

On an actual device I try and configure this using:

在实际设备上,我尝试使用以下方法配置:

PRAGMA temp_store = 2;

These executes without error. However, when I query the configuration using:

这些执行没有错误。但是,当我使用以下方式查询配置时:

PRAGMA temp_store;

No results are returned so I am unable verify that this configuration is in effect. I can read other PRAGMA settings such as 'page_size'. Can anyone tell me:

没有返回结果,因此我无法验证此配置是否有效。我可以阅读其他PRAGMA设置,例如'page_size'。谁能告诉我:

  • If this is expected behavior
  • 如果这是预期的行为

  • If this is an unsupported configuration in SQLite on the iPhone
  • 如果这是iPhone上SQLite中不支持的配置

  • If such an optimization would be pointless on the iPhone even if it were possible (due perhaps to the hardware)
  • 如果这样的优化在iPhone上毫无意义,即使它是可能的(可能由硬件引起)

  • How I can successfully move temporary table storage into memory in this scenario
  • 在这种情况下,如何将临时表存储成功移动到内存中

Note: I am well aware of Core Data in SDK 3.0 but I have good reasons for not using it.

注意:我很清楚SDK 3.0中的核心数据,但我有充分的理由不使用它。

Update: jitter pointed out that the SQLite instance on the iPhone may have been compiled with SQLITE_TEMP_STORE set to always use temporary files. I wasn't aware of this setting - is there any way to confirm that this is the case?

更新:jitter指出iPhone上的SQLite实例可能已经编译,SQLITE_TEMP_STORE设置为始终使用临时文件。我不知道这个设置 - 有没有办法确认是这种情况?

2 个解决方案

#1


I just added the SQLite source myself to my projects, because the SQLite on at least the iPhone OS 2.x is not thread safe.

我刚刚将SQLite源自己添加到我的项目中,因为至少iPhone OS 2.x上的SQLite不是线程安全的。

#2


I don't know but guess they compiled the sqllite with SQLITE_TEMP_STORE=0. And there is another guy who tried this and didn't succeed. SQLite optimization on the iPhone

我不知道,但他们猜测他们用SQLITE_TEMP_STORE = 0编译了sqllite。还有另一个人试过这个并没有成功。 iPhone上的SQLite优化

  • List item

I can't try it out myself but there seems to be a sqlite3TempInMemory() function in the source too (src/main.c). Don't know if you can call that.

我不能自己尝试,但在源代码中似乎也有一个sqlite3TempInMemory()函数(src / main.c)。不知道你是否可以打电话。

This function returns true if main-memory should be used instead of a temporary file for transient pager files and statement journals. The value returned depends on the value of db->temp_store (runtime parameter) and the compile time value of SQLITE_TEMP_STORE. The following table describes the relationship between these two values and this functions return value.

如果应使用主内存而不是临时文件用于临时寻呼机文件和语句日志,则此函数返回true。返回的值取决于db-> temp_store(运行时参数)的值和SQLITE_TEMP_STORE的编译时间值。下表描述了这两个值之间的关系以及此函数的返回值。


推荐阅读
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • 如何在Windows内置的Ubuntu系统中更改SSH服务的端口号设置
    如何在Windows内置的Ubuntu系统中更改SSH服务的端口号设置 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 【问题】在Android开发中,当为EditText添加TextWatcher并实现onTextChanged方法时,会遇到一个问题:即使只对EditText进行一次修改(例如使用删除键删除一个字符),该方法也会被频繁触发。这不仅影响性能,还可能导致逻辑错误。本文将探讨这一问题的原因,并提供有效的解决方案,包括使用Handler或计时器来限制方法的调用频率,以及通过自定义TextWatcher来优化事件处理,从而提高应用的稳定性和用户体验。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • Android Studio 安装指南:详细步骤与常见问题解答
    Android Studio 安装指南:详细步骤与常见问题解答 ... [详细]
author-avatar
陈俊凯660638
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有