http://www.perlmonks.org?node_id=494900


in reply to RFC: Data::Sync

Thanks for all your responses, especially Dragonchild and diotalevi for taking the extra trouble to look at the source. The comments and suggestions have really helped to focus and prioritize further development.

xdg Here's the DProf output for a sample run on my laptop - a 3 field database in SQLite with 20,000 records:

Total Elapsed Time = 267.0170 Seconds User+System Time = 202.9570 Seconds Exclusive Times %Time ExclSec CumulS #Calls sec/call Csec/c Name 92.8 188.4 188.40 39992 0.0047 0.0047 DBI::st::execute 1.71 3.470 201.47 20002 0.0002 0.0101 Data::Sync::__ANON__ 1.45 2.950 2.950 39992 0.0001 0.0001 DBD::SQLite::st::_prepare 1.02 2.070 2.070 39994 0.0001 0.0001 DBI::_setup_handle 0.78 1.590 1.590 139990 0.0000 0.0000 Data::Sync::log 0.66 1.340 3.670 39994 0.0000 0.0001 DBI::_new_handle 0.29 0.590 4.260 39992 0.0000 0.0001 DBI::_new_sth 0.29 0.580 7.790 39992 0.0000 0.0002 DBD::SQLite::db::prepare 0.25 0.500 8.290 39992 0.0000 0.0002 DBI::db::prepare 0.21 0.420 0.710 1 0.4200 0.7100 Data::Sync::remap 0.14 0.280 0.280 79986 0.0000 0.0000 DBI::common::DESTROY 0.13 0.260 0.260 39994 0.0000 0.0000 DBI::st::TIEHASH 0.13 0.260 0.870 1 0.2600 0.8699 Data::Sync::sourceToAoH 0.11 0.230 0.410 20000 0.0000 0.0000 Data::Sync::recursiveTran +sform 0.11 0.220 0.630 1 0.2200 0.6300 Data::Sync::runTransform

as you can see, it wasn't particularly quick, but the bulk of the time was spent in DBI::execute.

--------------------------------------------------------------

$perlquestion=~s/Can I/How do I/g;