React native realm.write()中的循环,还是反过来?
我使用的是ES2015类模式模型:React native realm.write()中的循环,还是反过来?,react-native,realm,React Native,Realm,我使用的是ES2015类模式模型: class Person { get fullName() { return this.firstName + ' ' + this.lastName; } } Person.schema = { name: 'Person', properties: { firstName: 'string', lastName: 'string' } }; 假设我有一个很长的人员列表,每个人员项目都将在一个循环中更新。我发现
class Person {
get fullName() {
return this.firstName + ' ' + this.lastName;
}
}
Person.schema = {
name: 'Person',
properties: {
firstName: 'string',
lastName: 'string'
}
};
假设我有一个很长的人员列表,每个人员项目都将在一个循环中更新。我发现在调试模式下,在循环中使用写块比在写块中使用循环快
更快:
componentDidMount(){
realmWorker.addListener(()=>{
console.log('from search screen');
})
}
onClick=()=>{
let persons = realm.objects('person');
persons.forEach(person=>{
realm.write(()=>{
person.age++;
// More complicated updates.
})
})
}
慢一点:
realm.write(()=>{
let persons = realm.objects('person');
persons.forEach(person=>{
person.age++;
// More complicated updates.
})
})
但我读到,该文件倾向于尽可能少的写转换:
Note that write transactions have a non-negligible overhead; you should try to minimize the number of write blocks within your code.
那么我应该把整个循环放在写块中吗 写事务是原子事务,也就是说,要么全有,要么全无。这意味着事务中所做的更改应该是一个逻辑更改集。如果您更改了两个对象,并且需要在这两个对象之间保持某种一致性,那么这些更改应该在一个事务中完成。如果更改是独立的,那么更改可以(而且可能应该)在两个事务中完成 以上是理论:-)我们在文档中写的是交易是昂贵的。原因是事务必须获取锁,并且必须将更改写入存储
调试RN应用程序时,更改仍会写入存储器,但也会与调试器通信。这是一个缓慢的过程-例如,请参见。我最好的猜测是,由于应用程序/调试器通信开销,许多小事务在调试时都很慢。在现实场景中(用户使用你的应用程序-无需调试器),循环外的写事务将更快。写事务是原子事务,也就是说,要么全有,要么全无。这意味着事务中所做的更改应该是一个逻辑更改集。如果您更改了两个对象,并且需要在这两个对象之间保持某种一致性,那么这些更改应该在一个事务中完成。如果更改是独立的,那么更改可以(而且可能应该)在两个事务中完成 以上是理论:-)我们在文档中写的是交易是昂贵的。原因是事务必须获取锁,并且必须将更改写入存储 调试RN应用程序时,更改仍会写入存储器,但也会与调试器通信。这是一个缓慢的过程-例如,请参见。我最好的猜测是,由于应用程序/调试器通信开销,许多小事务在调试时都很慢。在现实场景中(用户使用你的应用程序-没有调试器),循环外的写事务会更快