Merge pull request #5801 from guanqun/use-retain-for-memorydb
use rust 1.18's retain to boost the purge performance
This commit is contained in:
		
						commit
						e06d1dbb0c
					
				@ -53,7 +53,7 @@ below to build from source.
 | 
			
		||||
 | 
			
		||||
## Build dependencies
 | 
			
		||||
 | 
			
		||||
**Parity requires Rust version 1.17.0 to build**
 | 
			
		||||
**Parity requires Rust version 1.18.0 to build**
 | 
			
		||||
 | 
			
		||||
We recommend installing Rust through [rustup](https://www.rustup.rs/). If you don't already have rustup, you can install it like this:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -103,11 +103,7 @@ impl MemoryDB {
 | 
			
		||||
 | 
			
		||||
	/// Purge all zero-referenced data from the database.
 | 
			
		||||
	pub fn purge(&mut self) {
 | 
			
		||||
		let empties: Vec<_> = self.data.iter()
 | 
			
		||||
			.filter(|&(_, &(_, rc))| rc == 0)
 | 
			
		||||
			.map(|(k, _)| k.clone())
 | 
			
		||||
			.collect();
 | 
			
		||||
		for empty in empties { self.data.remove(&empty); }
 | 
			
		||||
		self.data.retain(|_, &mut (_, rc)| rc != 0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/// Return the internal map of hashes to data, clearing the current state.
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user