Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.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
React native 在为React Native编写的领域中,代码的性能是否受到影响?_React Native_Realm - Fatal编程技术网

React native 在为React Native编写的领域中,代码的性能是否受到影响?

React native 在为React Native编写的领域中,代码的性能是否受到影响?,react-native,realm,React Native,Realm,我有一个大的切换案例,每个案例都会做一些工作,把它需要的东西组合起来,生成一个特定的数据库对象,然后是realm.create对象。确保持久性的最简单方法是将整个开关/案例放入realm.write中。这会降低每个案例中运行的代码的速度吗 realm.write(() => { let x, y; switch (condition) { case 'x': x = //some work to generate the x object realm

我有一个大的切换案例,每个案例都会做一些工作,把它需要的东西组合起来,生成一个特定的数据库对象,然后是realm.create对象。确保持久性的最简单方法是将整个开关/案例放入realm.write中。这会降低每个案例中运行的代码的速度吗

realm.write(() => {
  let x, y;
  switch (condition) {
    case 'x':
      x = //some work to generate the x object
      realm.create('X', x);
      break;
    case 'y':
      y = // some work to generate the y object
      realm.create('Y', y);
      break;
  }
});
另一种方法是,在使用create的任何情况下,使用一个变量来保持arrow函数,并在末尾使用arrow函数调用realm.write。很高兴这样做,但好奇是否有任何好处

let x, y, writeFunc;
switch (condition) {
  case 'x':
    x = //some work to generate the x object
    writeFunc = () => realm.create('X', x);
    break;
  case 'y':
    y = // some work to generate the y object
    writeFunc = () => realm.create('Y', y);
    break;
}
realm.write(writeFunc);

您的两个代码示例的性能大致相同。可以在写块中执行其他代码,因此我会选择最干净/最简单的选项

在考虑性能时,您唯一需要真正担心的是事务太多。理想情况下,您应该尽量减少拥有的事务数量,并在一个单写事务中批处理多个操作(创建、变异、删除),而不是每个操作都有一个事务。当同时写入多个对象时,速度会显著加快,如果您正在执行许多操作,那么批处理它们会对性能产生真正的影响