Here is a quick overview how cacheing of formats saved a day. Here are outputs of make profile. Before cacheing: Total Elapsed Time = 130.4098 Seconds User+System Time = 126.7298 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 54.6 69.30 167.83 13875 0.0050 0.0121 main::data2xml 30.4 38.60 69.833 743146 0.0001 0.0001 main::parse_iso_format 14.3 18.15 22.102 201297 0.0000 0.0000 main::isis_sf 10.6 13.50 13.502 200394 0.0000 0.0000 Text::Iconv::convert 4.64 5.882 9.130 201297 0.0000 0.0000 main::cnv_cp 3.32 4.208 4.208 130848 0.0000 0.0000 main::xmlify 3.18 4.032 13.813 155421 0.0000 0.0000 main::x 3.12 3.949 3.949 475311 0.0000 0.0000 OpenIsis::subfields 3.08 3.906 3.906 116974 0.0000 0.0000 Text::Unaccent::unac_string 3.02 3.827 73.660 743146 0.0000 0.0001 main::parse_format 2.42 3.070 3.070 24922 0.0001 0.0001 DBI::st::execute 1.53 1.933 3.142 104893 0.0000 0.0000 main::mkformat 0.92 1.172 1.172 13875 0.0001 0.0001 OpenIsis::read 0.59 0.752 0.752 28993 0.0000 0.0000 index_DBI::insert 0.33 0.420 3.540 1 0.4201 3.5396 index_DBI::close After format cache implementation: (filters also load only once) Total Elapsed Time = 69.53874 Seconds User+System Time = 68.58874 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 65.3 44.84 90.453 13875 0.0032 0.0065 main::data2xml 24.2 16.65 28.905 391769 0.0000 0.0001 main::parse_iso_format 13.8 9.479 9.479 151026 0.0000 0.0000 Text::Iconv::convert 10.9 7.540 9.619 109406 0.0000 0.0000 main::isis_sf 5.04 3.454 11.252 131626 0.0000 0.0000 main::x 3.37 2.313 31.218 391769 0.0000 0.0001 main::parse_format 3.28 2.249 2.249 55675 0.0000 0.0000 main::xmlify 3.03 2.079 2.079 280696 0.0000 0.0000 OpenIsis::subfields 2.39 1.642 1.642 13875 0.0001 0.0001 OpenIsis::read 1.86 1.279 2.629 180129 0.0000 0.0000 main::cnv_cp 0.47 0.324 0.324 2757 0.0001 0.0001 DBI::st::execute 0.40 0.276 0.276 41801 0.0000 0.0000 main::unac_string 0.34 0.232 0.573 43784 0.0000 0.0000 main::mkformat 0.22 0.150 0.387 23 0.0065 0.0168 main::BEGIN 0.21 0.142 0.142 13875 0.0000 0.0000 main::progress