Last active
December 22, 2018 03:31
-
-
Save hartator/777c02ff71dcaf38494774f107332b63 to your computer and use it in GitHub Desktop.
Raw results for Benchmark: Deep directory structure vs. flat directory structure to store millions of files on ext4 article (https://medium.com/@hartator/benchmark-deep-directory-structure-vs-flat-directory-structure-to-store-millions-of-files-on-ext4-cac1000ca28)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
➜ files pry | |
[1] pry(main)> | |
[2] pry(main)> | |
[3] pry(main)> | |
[4] pry(main)> require 'digest' | |
=> true | |
[5] pry(main)> require 'benchmark' | |
=> true | |
[6] pry(main)> | |
[7] pry(main)> hash = {} | |
=> {} | |
[8] pry(main)> | |
[9] pry(main)> 10_000_000.times do | |
[9] pry(main)* key = Digest::MD5.hexdigest(rand.to_s) | |
[9] pry(main)* value = Digest::MD5.hexdigest(rand.to_s) | |
[9] pry(main)* hash[key] = value | |
[9] pry(main)* end | |
=> 10000000 | |
[10] pry(main)> | |
[11] pry(main)> FileUtils.mkdir_p "dir_flat" | |
=> ["dir_flat"] | |
[12] pry(main)> FileUtils.mkdir_p "dir_deep" | |
=> ["dir_deep"] | |
[13] pry(main)> | |
[14] pry(main)> puts Benchmark.measure { | |
[14] pry(main)* hash.each do |key,value| | |
[14] pry(main)* File.write "./dir_flat/#{key}", value | |
[14] pry(main)* end | |
[14] pry(main)* } | |
101.741710 235.182697 336.924407 (563.571509) | |
=> nil | |
[15] pry(main)> | |
[16] pry(main)> puts Benchmark.measure { | |
[16] pry(main)* hash.each do |key,value| | |
[16] pry(main)* File.read "./dir_flat/#{key}" | |
[16] pry(main)* end | |
[16] pry(main)* } | |
67.303303 66.831921 134.135224 (144.236235) | |
=> nil | |
[17] pry(main)> | |
[18] pry(main)> puts Benchmark.measure { | |
[18] pry(main)* hash.keys.each do |key| | |
[18] pry(main)* dir_path = "./dir_deep/#{key[0..1]}/#{key[2..3]}/" | |
[18] pry(main)* FileUtils.mkdir_p dir_path | |
[18] pry(main)* end | |
[18] pry(main)* } | |
159.113524 23.786297 182.899821 (184.098348) | |
=> nil | |
[19] pry(main)> | |
[20] pry(main)> puts Benchmark.measure { | |
[20] pry(main)* hash.each do |key,value| | |
[20] pry(main)* dir_path = "./dir_deep/#{key[0..1]}/#{key[2..3]}/" | |
[20] pry(main)* File.write dir_path + key, value | |
[20] pry(main)* end | |
[20] pry(main)* } | |
126.305435 301.732794 428.038229 (813.518161) | |
=> nil | |
[21] pry(main)> | |
[22] pry(main)> puts Benchmark.measure { | |
[22] pry(main)* hash.each do |key,value| | |
[22] pry(main)* dir_path = "./dir_deep/#{key[0..1]}/#{key[2..3]}/" | |
[22] pry(main)* File.read dir_path + key | |
[22] pry(main)* end | |
[22] pry(main)* } | |
93.860948 253.143623 347.004571 (1272.890921) | |
=> nil | |
[23] pry(main)> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment