Realm vs Sqlite用于移动开发

Med*_*edo 23 database sqlite mobile realm xamarin

作为一个Xamarin开发人员,我曾经使用Sqlite作为移动数据库,
最近Realm出现了.
关于它们在性能和易用性方面的差异的任何想法..等等?

使用任何一种方法的最佳做法是什么?

Moh*_*Ali 22

Realm和Sqlite在很多方面都有很大不同.

以下是您可以通过两篇文章来了解主要区别:

系统属性比较领域与SQLite
5个原因,你应该选择领域CoreData/SQLite

正如Slavia在评论中所建议的,还要看看这篇文章,以比较几个ORM,包括Realm.

  • http://kpgalligan.tumblr.com/post/133281929963/my-talk-at-droidcon-uk清醒地看看很多ORM,包括Realm. (2认同)

And*_*ent 22

我是Realm的Xamarin团队的开发人员,所以我可以告诉你更多关于Xamarin产品的工作原理.

Realm有一个C++核心,在所有产品中都很常见.这就是为什么我们为每个平台发布而不仅仅是一种语言 - 我们需要包含本机核心.虽然我们支持您的代码的PCL版本,但我们没有这样的PCL库 - 在构建时,您的PCL代码将链接到匹配的IOS或Android库.

所有Realm产品都是单独开发的,为给定的编程语言提供惯用的界面,在代码和数据之间尽可能地设置一层.

这意味着,例如,C#产品提供LINQ进行查询,并使用C#对象作为定义数据模型的方法.在构建时,运行Fody代码生成器以添加属性设置器和getter,这样您的C#对象将直接与核心C++数据交互.与典型的ORM产品不同,不会将数据从数据库复制到缓冲区中,然后再复制到对象中.

领域数据是内存映射的,所以它直接从代码到存储.我们生成替换自动属性getter和setter的访问器方法.

我们使用术语零拷贝来描述这一点.相比之下,大多数其他系统将具有C#对象,这些对象具有支持其属性的字段.这些对象通常通过从已从磁盘存储中读取的SQLite缓冲区进行复制来填充.这是两个级别的复制.

  • `与典型的ORM产品不同,不会将数据从数据库复制到缓冲区,然后再复制到对象中.你能帮我解释一下这个陈述吗? (2认同)