This resource created 2008 May 6 collects GEDCOM import speed measurements from my genealogy software reviews. I have added numbers from later reviews, and done some speed measurements to list additional programs.
There are many more aspects to a genealogy program, and to GEDCOM support, but import speed is one aspect I always test. You need to get some data into a program to test the rest, and toy databases with a dozen individuals in them tell you almost nothing about program quality. It is how a program handles a real database that really matters. After all, you’d like to keep using a program as your database grows.
The main test file is an ANSEL GEDCOM written by PAF 5.2.18.0 (2002). Sadly, there are still quite a few program out that do not still support UTF-8, and even programs that do not recognise ANSEL. That a program imported an ANSEL GEDCOM in ten minutes does not imply it imported it correctly.
This overview is about speed, with a few brief remarks about memory usage in the notes. See individual reviews for any remarks about the quality of the import log, unsupported tags and handling of unknown tags.
The main test file is a GEDCOM with slightly more than hundred thousand individuals in it. The GEDCOM is roughly 38 megabytes. I often refer to this file as the 100k INDI file.
It is quite possible to import that file in a few minutes, but because quite a few programs have such slow GEDCOM import that it takes hours, I often start with a smaller GEDCOM file. I initially used various files, but later settled on a particular file of roughly 1 megabyte, containing less than five thousand individuals.
The 100k INDI GEDCOM was created from an old copy of my unfinished research. It is not available for download. You can make your own 100k INDI database by merging several other databases.
The 1 MB GEDCOM is one I found on the Internet. I have collected many GEDCOM files, and picked this one solely because it happens to be approximately one megabyte and is easy to locate in a size-sorted overview.
The nearly-round numbers (100k INDI and 1 GB) make it easy for you to make a quick estimate how well the program would handle your database.
All the test in this overview has been performed on a the same computer running Windows XP with the latest service packs and patches. The computer is an Intel motherboard, and the CPU is a 2,7 GHz Pentium 4, a single-core 32-bit processor. Early tests were performed with 1 GB of RAM, later tests with 2 GB of RAM.
1 GB should be more than enough to import all but the very largest GEDCOM files. I have one 300 MB GEDCOM file that might be problematic for many programs, but the 100k INDI GEDCOM is just 38 MB. Even if Windows and background programs are using half a gigabyte already, and the program itself were to use some 30 MB to run, that would still leave thirteen times the file size of real RAM to work in.
Any excessive memory usage is noted in the remarks. The numbers are simply those shown by the Windows Task Manager, and are sometimes too low as actual usage may be more than Task Manager indicates.
The actual measurement is a time, expressed as a number of seconds. From that the import speed as the number of individuals per second or kilobytes per second can be derived.
Time measurements are done manually, so they may be off a bit, but generally, the times are so large that accuracy of the measurement is hardly a concern, but I do make an effort to get it down to the second. Test runs with smaller files, intermittent checks, progress bars and sometimes rough results from an earlier run help me to be present to note the clock time when the import finishes.
Some programs make the mistake of putting up dialog boxes during import. This
has a well-deserved negative effect on the import time, just as it would have if
you were to use the program yourself. In fact, because I made an effort to minimise such
delays with speedy responses, the results shown here are probably better than what
you will experience in practice.
Programs that make this user interface mistake include Legacy Family Tree 6 and TMG 7.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| exact size | 1.055.895 bytes | 38.799.393 bytes |
| individual records | 4.862 | 100.067 |
| family records | 1.700 | 45.613 |
| GEDCOM version | 5.5 | 5.5 |
| character encoding | ANSI | ANSEL |
| program | BASGEN 7.1a (1998) | PAF 5.2.18.0 (2002) |
| bytes per INDI | 217,17 | 387,73 |
Note that the larger file has more bytes per individual. The file simply contains more data per person, including more sources and comments, but also by longer identifiers. I added this line to highlight that some results in the tables below, such as that for Hereditree, which imports only half as many INDI per second for the larger file, yet nearly just as much bytes per second, are indeed correct.
The PAF file contains various tags that extend the GEDCOM standard, most notable the _UID and _AKA tags. These are legal GEDCOM extensions, and the GEDCOM specification makes it clear that other program may ignore these.
The PAF file also contains an EMAIL tag. I would not mention it, where it not that EMAIL is not a GEDCOM 5.5. It is a GEDCOM 5.5.1 tag in a GEDCOM 5.5 file, so importing programs are allowed to complain about it. The only program that complained about it because it did not recognise the tag is TMG, but TMG also failed to recognise the CREM tag.
Program should report all import issues in the import log. Alas, several program disrespect your database so much that they think nothing of adding a comment to your database for each tag they do not recognise. These comments then show up in all reports and the GEDCOM export. An exception is TMG, which does not export the comments it added.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | - | - |
| time in seconds | - | - |
| INDI per second | - | - |
| bytes per second | - | - |
When I tried to import a GEDCOM file of less than 10 MB, I saw memory usage increase up to 1024 MB (1 GB), at which point GenoPro reported out of memory.
By the way, this test back then was on a 1 GB system. I later repeated this test after upgrading to 2 GB of RAM, with the same result; GenoPro reports out of memory as soon as it uses 1024 MB.
This severely limits the maximum database GenoPro can handle. GenoPro simply cannot handle the 100k INDI file.
GenoPro’s GEDCOM output is full of illegal GEDCOM extensions, and the GEDCOM
header contains a spelling error that makes it invalid; It should say 2 FORM
LINEAGE-LINKED, but it actually says 2 FORM LINAGE-LINKED.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | - | 52m25s |
| time in seconds | - | 3145 |
| INDI per second | - | 31,82 |
| bytes per second | - | 12.336,85 |
Ancestral Quest 12 does not only support UTF-8, it even supports UTF-16
("UNICODE" in the GEDCOM specification).
Unsurprisingly, considering their shared heritage, Ancestral Quest had no
problem with PAF’s GEDCOM extensions at all, but actually supports them.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | - | - |
| time in seconds | - | - |
| INDI per second | - | - |
| bytes per second | - | - |
I tried importing royalfam.ged. Geves’ memory usage kept climbing, beyond 700 MB, on my 1 GB system. Some 35 minutes after starting the import of a mere 3.5 MB file, I had to kill the program.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 2m15s | |
| time in seconds | 135 | |
| INDI per second | 36,01 | |
| bytes per second | 7.821,44 |
FTM2008 uses "GenBridge" the direct import routines that Wholly Genes created for TMG. Trying to import a PAF file resulted in nothing but "unknown error".
Interestingly, FTM refuses to read anything but GEDCOM 5.5, and thus refuses to many GEDCOM files written by earlier versions of FTM! It also refuses to read FTW TEXT files, FTW’s own variation on GEDCOM files.
The quality of the GEDCOM export is disappointing. FTM does not support either ANSEL or UTF-8, and does not even get the GEDCOM header right.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 14s | 1m47s |
| time in seconds | 14 | 107s |
| INDI per second | 347,28 | 935,21 |
| bytes per second | 75.421,07 | 362.611,15 |
GEDCOM import is pretty fast, but the program does not produce an import log without your prompting.
When you do prompt it to write one, it turns out to be pretty useless.
FTB is one of the few program that bothers to report encoding errors, but FTB
misreports its own failure to recognise a valid encoding as an error in the
GEDCOM file. FTB also issues warnings for characters it cannot handle, but these
warnings themselves read as if there is something wrong with the characters, and do
not make it clear that the issue is an FTB limitation.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 22m02s | - |
| time in seconds | 1322 | - |
| INDI per second | 3,68 | - |
| bytes per second | 773,72 | - |
WinFamily 7’s GEDCOM was so slow that I did not even try to import the 100k INDI GEDCOM. An import speed of just a few individuals, and actually less than one kilobyte per second is truly pathetic, but real shocker is not even how slow WinFamily 7 is. The real shocker is how much slower it is than WinFamily 6.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 4s | - |
| time in seconds | 4 | - |
| INDI per second | 1215,50 | - |
| bytes per second | 263.973,75 | - |
WinFamily 6 has the kind of performance you expect from a program already in
its sixth version. On this small file, the import speed of about a quarter
megabyte per second leads to an import time of just 3 or 4 seconds, it is hard
to say exactly. I chose to use 4 because I was reviewing WinFamily 7 and did
want to paint it worse than it is, but it is still 330½ times as slow as the preceding version.
WinFamily 6 even has features that WinFamily 7 completely lacks. While WinFamily
6 is one of the very few programs to actually support UTF-16, WinFamily 7
demands Microsoft .NET, yet does not even support UTF-8.
WinGeno 1.0 is not a genealogy program but a genogram editor. It does not support GEDCOM.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | - | 1h26m00s |
| time in seconds | - | 5160 |
| INDI per second | - | 19,39 |
| bytes per second | - | 7.519,26 |
TMG does not support UTF-8, and its help file is no help. It provides no information, but directs you to a bulletin board post instead. That post recommends opening the GEDCOM file in NotePad, to save it as Windows ANSI and ignore the warning about loss of information! Wholly Genes actually recommends damaging your data to use TMG...
TMG’s import listing is incomplete, and TMG does not recognise the CREM tag. TMG adds CREM tag, and the unrecognised EMAIL, _AKA and _UID tags as comments to the database.
TMG 7’s import is slow, but faster and more reliable than TMG 6’s GEDCOM import, which produced many run-time errors. TMG offers direct import, but it is about four times as slow as GEDCOM import. TMG’s GEDCOM export suffers from some minor violations of the GEDCOM spec for DATE tags.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | ∞ | ∞ |
| time in seconds | ∞ | ∞ |
| INDI per second | 0 | 0 |
| bytes per second | 0 | 0 |
Genea 1.2 was the first version of Genea to claim GEDCOM support. Alas, all attempts to time a GEDCOM import or even merely export a small GEDCOM failed, partly because of a somewhat confusing user interface, but mostly because the program keeps crashing.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | - | - |
| time in seconds | - | - |
| INDI per second | - | - |
| bytes per second | - |
I tested this program with royalfam.ged.
Import of 8753 individuals in 140 seconds is 62,5 individuals per
second. Import of 3.579.808 bytes in 140 seconds is 24,97 KB per second.
The program does not support GEDCOM output.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | - | 6m30s |
| time in seconds | - | 390 |
| INDI per second | - | 256,58 |
| bytes per second | - | 99.485,62 |
Aldfaer adds comments for each _UID tag it encounters. Aldfaer 4.0 does not support the EMIG, IMMI or NATU tags. Aldfaer does not support the AFN (Ancestral File Number) or DSCR (description) tags either.
Aldfaer does not support UTF-8, and is confused by a Byte Order Mark (BOM). Aldfaer does not prompt for a submitter, and the GEDCOM files it export contain the illegal "SUBM Unknown" in the GEDCOM header. Strangely, Aldfaer supports name prefix, and will even auto-split names on import, but the GEDCOM files it creates do not use the SPFX tag. In fact, Aldfaer uses the NAME tag only and does not even use the GIVN and SURN tags.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 6 m50s | 4h10m24s |
| time in seconds | 410 | 15024 |
| INDI per second | 11,86 | 6,66 |
| bytes per second | 2575,35 | 2.582,2 |
Hereditree does not support ANSEL, and misinterprets it as ANSI without even a warning. There is no import log. During import of the 100k INDI GEDCOM, the Task Manager showed Hereditree memory usage climbing to 425 MB, and it remained that high when the import was done. Hereditree simply uses that much memory, and the database file is about the same size.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 36s | 25m09s |
| time in seconds | 36 | 1.509 |
| INDI per second | 135,06 | 66,31 |
| bytes per second | 29.330,42 | 25.711,99 |
FTM16’s GEDCOM import is picky about date formats, cannot handle ANSEL, limits the length of names and confuses itself so much that it produces erroneous error messages. The import listing is close to useless because it only list line numbers and errors, not the GEDCOM line itself.
Update 2008-12-15: FTM 16 does support ANSEL, so the 100k INDI GEDCOM import times are not stricken through like they are for FTM 2008 and FTM 2009.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m50s | 2h31m11s |
| time in seconds | 110 | 9.071 |
| INDI per second | 44,20 | 11,03 |
| bytes per second | 9.599,45 | 4.277.30 |
The FTM 2008 GEDCOM import counts tags such as _ITALIC as errors, while these are perfectly legal GEDCOM extensions, and not errors at all. FTM labels correct dates as errors, because it does not support either the OR or the FROM .. TO construct. FTM 2008 does not support either ANSEL or UTF-8.
Update 2008-12-15: The 100K INDI GEDCOM import results are stricken through because FTM 2008 mangles ANSEL GEDCOM files on import.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m52 | 3h13m25s |
| time in seconds | 112 | 11.605 |
| INDI per second | 43,41 | 8,62 |
| bytes per second | 9.427,63 | 3.343,33 |
Apart from speed differences and a slightly different import complete dialog box, FTM 2008 SP3’s GEDCOM import is just like FTM 2008’s GEDCOM import. In testing, FTM2008 SP3 turned out to be even slower than FTM2008.
Update 2008-12-15: The 100K INDI GEDCOM import results are stricken through because FTM 2008 mangles ANSEL GEDCOM files on import.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 30m55s | - |
| time in seconds | 1855 | - |
| INDI per second | 2,62 | - |
| bytes per second | 569,22 | - |
Genea is not just slow. While importing the 1 MB GEDCOM, Genea’s memory usage increased with 43 MB, and only a restarts brings the memory usage down again. Weirdly, although it claims all that memory to work in, during the entire import the hard disk is rattling incessantly. This GEDCOM import contains some major inefficiencies.
The excessively low speed and large memory hunger explains why I did not even bother to try the 100k INDI GEDCOM. If it works at all, it probably takes more than a day...
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1h57m15s | - |
| time in seconds | 7035 | - |
| INDI per second | 0,69 | - |
| bytes per second | 150,09 | - |
I measured a GEDCOM export time of 1 hour and 56 minutes for a three-person tree, but because Geni.com does not allow deleting uploaded trees, I did not perform a GEDCOM import test. These numbers are an estimate based on the import time of 2 hours that Geni user Scott Hibbard reported on the Geni.com forum for a GEDCOM file with 4976 individuals in it.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 2m08 | 2h58m32s |
| time in seconds | 128 | 10.712 |
| INDI per second | 37,98 | 9,34 |
| bytes per second | 8.249,18 | 3.622,05 |
Heredis seems about as slow as Family Tree Maker 2008, but that may be
because it writes massive amounts of error messages to its import log. The log
provides error message, line number and line, but the messages are unclear and
Heredis is clearly confused, reporting errors where there are none.
Heredis’ support for sources and repositories is broken, and the GEDCOM import
and export is defective accordingly. Heredis writes a city code between the
place name and the municipality, virtually ensuring that no other program can
read its GEDCOM files.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 11s | 3m44s |
| time in seconds | 11 | 224 |
| INDI per second | 442,00 | 4.464,58 |
| bytes per second | 95.990,45 | 177.675,86 |
PAF has no trouble importing the 100k INDI GEDCOM. It is a PAF GEDCOM and imports without any error at a satisfying speed. PAF has many complaints about the 1 MB GEDCOM; PAF creates a log file that is larger than the GEDCOM file itself. Writing 6268 errors slows the import down. Upon examination, it turns out that PAF not only erroneous produces errors for the perfectly fine REFN.TYPE tag, but even complains a bout a TYPE tag inside an INDI records, while it actually is a TYPE tag inside a REFN record inside an INDI record.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m30s | 49m35s |
| time in seconds | 90 | 2975 |
| INDI per second | 54,02 | 33,64 |
| bytes per second | 11.732,17 | 13.041,81 |
Legacy makes the user interface mistake of popping up messageboxes during import. All you can do is OK these, but until you do, the import is stalled. Even worse, those messages are missing from the import log. The import ends with a messagebox that shows GEDCOM statistics, but no import time. The statistics are not in the import log. That log is mediocre; it does not list line numbers or the lines themselves, but it does not record identifiers, error messages and the problematic part of the line.
While PAF complained about the REFN.TYPE in INDI records, and was okay with REFN.TYPE in FAM records, Legacy is okay with the REFN tags in the INDI records, but complains about the REFN.TYPE tags in the FAM records.
Legacy does not respect your database, but bluntly adds notes for each tags it does not recognise. In response to the REFN.FTYP tags, Legacy adds "Reference:0" as a note to all family records, without asking permission and without any way to remove them.
The resulting Legacy database is close to half a gigabyte, That’s ridiculously large.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 16s | 5m21s |
| time in seconds | 16 | 321 |
| INDI per second | 303,88 | 311,74 |
| bytes per second | 65.993,44 | 120.870,38 |
RootsMagic puts up a needless dialog box after you’ve started the import. It asks whether a source should be added for all records from this file, a question it could and should have asked before starting the import.
The quality of the import log is low. It shows line number and actual lines, but the error messages are close to useless. It produces "UNKNOWN INFO (LINE 152)" for a line such as "4 DATE 22 Sep 1998".
RootsMagic import times are good. It is one of the few modern programs that comes close to PAF’s performance.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | ⅓s | 12s |
| time in seconds | ⅓ | 12 |
| INDI per second | 12.155 | 8.338,92 |
| bytes per second | 3.167.685,00 | 3.233.282,75 |
Legacy Charting’s GEDCOM import is fast, but Legacy Charting does not need to save a database to disk, does not produce any errors, warnings or any kind of import log.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 0,203s | 2,344s |
| time in seconds | 0,203s | 2,344 |
| INDI per second | 23.950,74 | 42.690,70 |
| bytes per second | 5.201.453,202 | 16.552.642,06 |
MudCreek GENViewer Lite has the fastest GEDCOM reader I know about. GENViewer Lite is a just a data viewer, not an editor, does not write the database to disk, does not report errors and does not produce an import log.
GENViewer does report its own import speed, and seems to do so accurately using a high-resolution timer.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 4s | 29m35s |
| time in seconds | 4 | 1.775 |
| INDI per second | 1.215,50 | 56,38 |
| bytes per second | 263.973,75 | 21.858,81 |
GedStar Basic 5.2 performs is good for small files, but drops dramatically for larger files. GedStar Basic shows a detailed progress dialog box.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 4s | 16m53s |
| time in seconds | 4 | 1.013 |
| INDI per second | 1.215,50 | 98,78 |
| bytes per second | 263.973,75 | 38.301,47 |
GedStar Pro is very similar to GedStar Basic. It does better on large files, but if GHCS Software bothered to speed up the slow cross-referencing phase of the import, it could be significantly faster than it is now.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 7s | 10m03s |
| time in seconds | 7 | 603 |
| INDI per second | 694,57 | 165,95 |
| bytes per second | 150.842,14 | 64.343,94 |
GedWise shows detailed statistic while importing and the total import time in second, probably rounded down.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m57s | 1h04m06s |
| time in seconds | 117 | 3.846 |
| INDI per second | 41,56 | 26,02 |
| bytes per second | 9.024,74 | 10.088,25 |
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m38s | 1h01m05s |
| time in seconds | 98 | 3.665 |
| INDI per second | 49,61 | 27,30 |
| bytes per second | 10.774,44 | 10.586,46 |
Millennia developed a fast import for Legacy Charting, but Legacy 7’s GEDCOM does not improve upon Legacy 6. It is the same user interface mess, with its ridiculous pause and annoying pop-up messages. Technically, the poor import log and erroneous error messages continue to disappoint. Somehow, Legacy 7 is slower than Legacy 6.
Map My Ancestors (MMA) failed to read both the 1 MB GEDCOM and the 100k INDI GEDCOM. Its error message is uninformative, and there is no log file. For a file it did load, the numbers are not good
It imported a 9.490.735 bytes file containing 34.311 individuals in 16.337 families in 39m12s. That is 2352 seconds, so that is an import speed of 14,59 individuals per seconds and 4.035,18 bytes per second.
That is a lower speed than TMG 7 has for the 100k GEDCOM already. However, if we include the time MMA takes to resolve locations to map coordinates, the import time is 2h26m30, that is 8790.seconds, and then the import speed is just 3,90 INID per second or 1.079,72 bytes per second. That pathetic performance puts MMA firmly below TMG, FTM 2008, Heredis and Hereditree.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 3s | 50s |
| time in seconds | 3 | 50 |
| INDI per second | 1.620,66 | 2.001,34 |
| bytes per second | 351.965,00 | 775.987.86 |
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 15s | 7m00s |
| time in seconds | 15 | 420s |
| INDI per second | 324,13 | 238,25 |
| bytes per second | 70.393,00 | 92.379,51 |
There is a lot wrong with this initial release, but the GEDCOM import is not it. The GEDCOM import is fast, and the error and warning messages are accurate. The demo’s import speed of some two thousand INDI per second is nothing short of impressive. The 50 seconds of the 100k INDI GEDCOM includes the 25 seconds that Relatives needs to redraw the screen, and if that is brought down to just a few seconds, the Relatives demo would boast an import speed well above 1 MB per second.
The demo speed does not include writing the database to a file, and the full version is so slow writing files that it practically negates the speed advantage of the import proper.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 3s | 50s |
| time in seconds | 3 | 50 |
| INDI per second | 1.620,66 | 2.001,34 |
| bytes per second | 351.965,00 | 775.987.86 |
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 15s | 7m00s |
| time in seconds | 15 | 420s |
| INDI per second | 324,13 | 238,25 |
| bytes per second | 70.393,00 | 92.379,51 |
Relatives 1.1. saves its files faster and that shows in the import times.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 25s | - |
| time in seconds | 25 | - |
| INDI per second | 194,48 | - |
| bytes per second | 42.235,80 | - |
FamilyTreeFactory produces detailed import logs, but only writes the log when the import is done; if it crashes, there will be no log at all. The GEDCOM import is very flexible and pretty fast on the small file, and it can handle medium sized files, but it is so memory hungry that it cannot handle large files. It aborted the import of the 100k INDI GEDCOM because it tripped over its own arbitrary limit of 25 children per family.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 30s | 38m15s |
| time in seconds | 30 | 2.295 |
| INDI per second | 162,07 | 43,60 |
| bytes per second | 35.186,50 | 16.906,05 |
It’s Our Tree Home Edition 1.0 does not have a native data format. It supports GEDCOM 5.5.1, GedML and GEDCOM XML (GEDCOM 6). It is a true Unicode program that writes UTF-8 encoded GEDCOM 5.5.1 files. It will read ANSEL files, but not write them, and it does not produce an import logs.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 4s | - |
| time in seconds | 4 | - |
| INDI per second | 1.215,50 | - |
| bytes per second | 263.973,75 | - |
LongFamilyHistory (LFH) seemed to complete the import of the 100k INDI GEDCOM file in 1h28m13s (5293s), which would place its poor performance in between TMG 7 and FTM 2008, but because LFH failed to display the file, I consider the import failed. A test with the medium size royalfam.ged file did show that the import speed has improved since version 1. A bigger issue than the poor performance is the lack of an import log.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 5s | 22s |
| time in seconds | 5 | 22 |
| INDI per second | 972,4 | 4.548,50 |
| bytes per second | 211.179,00 | 1.763.608,77 |
Family Historian’s import is fast, but hardly qualifies as a real import. It seems to simply copy the file and then slap a Family Historian header on it.
Family Historian is code-page-based design that supports Windows ANSI only. Its import does not handle character encodings and does not create an import log either. There is only a post-import report. Family Historian does not support ANSEL or UTF-8, yet pretends to import such GEDCOM files, mangling them in the process. Family Historian does not even handle ASCII GEDCOM files correctly. Because of this mangling, I consider the import of the 100k INDI GEDCOM to have failed.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m15s | 1h06m06s |
| time in seconds | 75 | 3.966 |
| INDI per second | 64,83 | 25,23 |
| bytes per second | 14.078,60 | 9.783,00 |
The import is speed is not good, and the entire program is slow. The program
does not seem to support anything but UTF-8, so I consider both imports (ANSI
and ANSEL respectively) to have failed.
The GEDCOM export omits the Byte Order Mark and does not even write a correct
GEDCOM header.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 55s | 2h18m01s |
| time in seconds | 55 | 8.281 |
| INDI per second | 88,40 | 12,08 |
| bytes per second | 19.198,09 | 4.685,35 |
Family Tree Maker (FTM) 2009 shows statistics when the import is done. Like
the previous version, the actual import time is longer than FTM reports. FTM
2009 is about twice as fast (well, half as slow) as FTM 2008 SP3.
The import log does not longer complain about perfectly PAF-specific extensions
like FTM 2008 did, but does highlight that FTM 2009 is still inflexible
regarding date formats. The import log is reasonable, except for the fact that
several ostensible errors are really not errors at all, but FTM limitations.
The GEDCOM export is performance is memory hungry, and FTM still does not write a correct GEDCOM header. The GEDCOM export does not offer a choice of character encodings, but exports to "ANSI" only. The import does not support anything but ANSI either, and FTM will mangle GEDCOM files using other encodings without even a warning. That implies that the import of the 100k INDI database failed, hence the strike-through.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 6s | 3m46s |
| time in seconds | 6 | 226s |
| INDI per second | 810,33 | 442,77 |
| bytes per second | 175.982,50 | 171.678,73 |
RootsMagic 4 GEDCOM import is blazing fast. RootsMagic 4 is faster than
RootsMagic 3, but seems functionally unchanged. The import log is as lousy as
before.
RootsMagic 3 supports import of ANSEL GEDCOM files, but RootsMagic 4 imports
them as if they were ANSI GEDCOM files, mangling the data That’s in them.
Because of that, I consider the import of the 100k INDI GEDCOM to have failed.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 6s | 4m56s |
| time in seconds | 6 | 296 |
| INDI per second | 810,33 | 338,06 |
| bytes per second | 175.982,50 | 131.079,03 |
A RootsMagic patch released 2009 Mar 30 upgrades the RootsMagic version to 4.0.1.1. Version 4.0.1.1 does import ANSEL GEDCOM as ANSEL (not ANSI). The import is a bit slower now, but still blazing fast. RootsMagic 4 is still a bit faster than RootsMagic 3.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 23m31s | ∞ |
| time in seconds | 1.411 | ∞ |
| INDI per second | 3,45 | 0 |
| bytes per second | 748,33 | 0 |
The Embla Family Treasures import is needlessly convoluted and spectacularly
slow. The import of the large GEDCOM failed, but measured speed were so low that
it makes more sense to express them in seconds per individual than in
individuals per second.
Embla Family Treasures does not support UTF-8. It fails to recognise UTF-8
GEDCOM files with a Byte Order Mark as GEDCOM. When presented with an UTF-8
GEDCOM files without a Byte Order Mark, it fails to warn you about its
limitation, but mangles the import instead.
The GEDCOM output contains multiple errors so basic, that it is clear that Embla never bothered to test it all. The UNICODE output is not UTF-16 at all, but gibberish. The ANSEL output is ANSEL, but its GEDCOM header contains illegal and erroneous tags.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 10s | 55s |
| time in seconds | 10 | 55 |
| INDI per second | 486,20 | 1.819,40 |
| bytes per second | 105.589,50 | 705.443,51 |
Daub Ages! uses Ages! GEDCOM as its native format. It imports and exports fasts, does not create an import log file, but does perform consistency checks upon import. Daub Ages! is an ANSI-based application, so character set support is limited. Weirdly, it does support ANSEL and UTF-8 import, but does not support ANSEL and UTF-8 export. After importing ANSEL or UTF-8, export to Windows ANSI works fine, but when you edit your database, fields look mangled.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1m34s | 1h15m44s |
| time in seconds | 94 | 4.544 |
| INDI per second | 49,81 | 22,02 |
| bytes per second | 11.232,93 | 8.538,60 |
MyBlood is a Unicode-based application that supports and defaults to UTF-8.
It supports ANSEL on import and thus succeeded in importing the 100k INDI
GEDCOM, but it does not support ANSEL on export. MyBlood 1.0 writes a correct
GEDCOM header, but does not use CONC or CONT when it should, and has limited
supported for NOTE fields.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 4,673s | 2m54s |
| time in seconds | 4,673 | 174 |
| INDI per second | 1040,45 | 575,10 |
| bytes per second | 225.956,56 | 222.985,02 |
Behold 0.98.9.91 is the last code-page version of Behold. Behold should
become a genealogy editor, but this version is still a GEDCOM viewer.
Behold 0.98.9.91 does include
support for ANSEL and UTF-8, not for UTF-16. Behold does not produce an import
log file, only a post-import report. It is remarkably memory-hungry,
requiring more than fifty times the size of the GEDCOM file.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 0,824s | 30s |
| time in seconds | 0,824 | 30 |
| INDI per second | 5.900,49 | 1.293.313,10 |
| bytes per second | 1.281.425,97 | 3.335,57 |
Behold 0.99.2 (2009-12-01) is the first Unicode version of Behold, but still a GEDCOM viewer, not a genealogy editor. Behold 0.99.2 is about six times as fast and four times as memory efficient as the previous version, but still requires about twelve times the file size in memory. The GEDCOM load supports ANSEL, UTF-8 and UTF-16. Behold still does not produce an import log file, but only a post-import report.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 15s | 3m27s |
| time in seconds | 15 | 207 |
| INDI per second | 324,13 | 483,15 |
| bytes per second | 70.393,00 | 187.436,69 |
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 15s | 5m50s |
| time in seconds | 15 | 350 |
| INDI per second | 324,13 | 285,91 |
| bytes per second | 70.393,00 | 110.855,41 |
The GEDCOM import in Family Tree Builder 3.0 and 4.0 seems unchanged from that in Family Tree Builder 2.0. That makes the variation in import speed odd, but no matter, it is fast enough.
Family Tree Builder 4.0 is still a codepage application. It supports import from ANSEL and UTF-8, but only exports to illegal ANSI GEDCOM. It does not support import from ASCII and does not recognise UTF-16. Import shortcomings and defects reported for version 2.0 have not been fixed.
| file | 1 MB GEDCOM | 100k INDI GEDCOM |
|---|---|---|
| time | 1s | 60s |
| time in seconds | 1 | 60 |
| INDI per second | 4.862,00 | 1.667,78 |
| bytes per second | 1.055.895,00 | 646.656,55 |
Family ChArtist 1.0 is a Flash app. It supports UTF-8 and UTF-16, but lacks support for ANSEL.
| date | program | version | time | seconds | INDI / s | bytes / s |
|---|---|---|---|---|---|---|
| 2008-05-24 | GENViewer Lite | 1.15 | 0,203s | 0,203 | 23.950,74 | 5.201.453,20 |
| 2008-05-24 | Legacy Charting | 7.0.071.394 | ⅓s | ⅓ | 12.155,00 | 3.167.685,00 |
| 2009-11-12 | Behold | 0.99.2 | 0,824s | 0,824 | 5.900,49 | 1.281.425,97 |
| 2010-02-24 | Family ChArtist | 1.0 | 1s | 1 | 4.862,00 | 1.055.895,00 |
| 2008-08-01 | Relatives demo (no save) | 1.0 | 3s | 3 | 1.620,66 | 351.965,00 |
| 2008-08-01 | Relatives demo (no save) | 1.1 | 3s | 3 | 1.620,66 | 351.965,00 |
| 2008-08-14 | Relatives full (with save) | 1.1 | 4s | 4 | 1.215,50 | 263.973,75 |
| 2007-12-12 | WinFamily | 6 | 4s | 4 | 1.215,50 | 263.973,75 |
| 2005-05-25 | GedStar Pro | 3.2 | 4s | 4 | 1.215,50 | 263.973,75 |
| 2008-05-25 | GedStar Basic | 5.2 | 4s | 4 | 1.215,50 | 263.973,75 |
| 2008-11-08 | LongFamilyHistory | 2.0.0 | 4s | 4 | 1.215,50 | 263.973,75 |
| 2009-12-01 | Behold | 0.98.9.91 | 4,673s | 4,673 | 1.040,45 | 225.956,56 |
| 2008-11-22 | Family Historian | 3.1.2 | 5s | 5 | 972,4 | 211.179,00 |
| 2009-03-25 | RootsMagic | 4.0.1.0 | 6s | 6 | 810,33 | 175.982,50 |
| 2009-04-02 | RootsMagic | 4.0.1.1 | 6s | 6 | 810,33 | 175.982,50 |
| 2008-05-25 | GedWise | 6.2 | 7s | 7 | 694,57 | 150.842,14 |
| 2009-11-23 | Daub Ages! | 1.53 | 10s | 10 | 486,20 | 105.589,50 |
| 2008-05-22 | PAF | 5.2.18.0 | 11s | 11 | 442,00 | 95.990,45 |
| 2007-11-27 | Family Tree Builder | 2.0 | 14s | 14 | 347,28 | 75.421,07 |
| 2008-08-01 | Relatives full (with save) | 1.0 | 15s | 15 | 324,13 | 70.393,00 |
| 2009-12-22 | Family Tree Builder | 3.0 | 15s | 15 | 324,13 | 70.393,00 |
| 2009-12-22 | Family Tree Builder | 4.0 | 15s | 15 | 324,13 | 70.393,00 |
| 2008-05-22 | RootsMagic | 3.2.5 | 16s | 16 | 303,88 | 65.993,44 |
| 2008-04-04 | Aldfaer | 4.0 | ||||
| 2008-09-28 | FamilyTreeFactory | 6..0.1.1 | 25s | 25 | 194,48 | 42.345,80 |
| 2008-10-15 | It’s Our Tree Home Edition | 1.0 | 30s | 30 | 162,07 | 35.186,50 |
| 2008-05-07 | Family Tree Maker 16 | 16.0.350 | 36s | 36 | 135,06 | 29.330,42 |
| 2007-05-30 | Ancestral Quest | 12 | ||||
| 2008-12-05 | Family Tree Maker 2009 | 18.0.0.95 | 55s | 55 | 88,40 | |
| 2008-05-22 | Legacy Family Tree | 6.0.0.190 | 1m30s | 90 | 54,02 | 11.732,17 |
| 2008-10-15 | The Master Genealogist | 7.0 | ||||
| 2009-11-26 | MyBlood | 1.0 | 94s | 94 | 49,81 | 11.232,93 |
| 2008-06-26 | Legacy Family Tree | 7.0.0.45 | 1m38s | 98 | 49,61 | 10.774,44 |
| 2008-05-07 | Family Tree Maker 2008 | 17.0.0.416 | 1m50s | 110 | 44,20 | 9.599,45 |
| 2008-05-07 | Family Tree Maker 2008 SP3 | 17.0.0.965 | 1m52s | 112 | 43,41 | 9.427,63 |
| 2008-05-20 | Heredis | 10 | 2m08 | 128 | 37,98 | 8.249,18 |
| 2007-07-10 | Family Tree Maker 2008 Beta | 17.0.0.371 | 2m15s | 135 | 36,01 | 7.821,44 |
| 2008-04-04 | Hereditree | 2008.0401 | 6m50s | 410 | 11,86 | 2575,35 |
| 2008-06-28 | Map My Ancestors | 1.0 | - | - | - | - |
| 2008-03-15 | LongFamilyHistory | 1.2.5 | ||||
| 2007-12-12 | WinFamily | 7 | 22m02s | 1.322 | 3,68 | 773,72 |
| 2009-09-11 | Embla Family Treasures | 8.0.30 | 23m31s | 1.411 | 3,46 | 748,33 |
| 2008-05-12 | Genea | 1.4.1 | 30m55s | 1.855 | 2,62 | 569,22 |
| 2008-05-13 | Geni.com | 1.0 | 1h57m15s | 7.035 | 0,69 | 150,09 |
| 2008-12-06 | MyBlood | 1.0 Alpha 1 | 1m15s | 75 | 64,83 | 14.078,60 |
| 2007-06-27 | Geves | 1.1.39 | ||||
| 2006-12-20 | GenoPro 2007 | 2.0 | ||||
| 2008-02-28 | Genea | 1.2 | ∞ | ∞ | 0 | 0 |
| 2007-12-24 | WinGeno | N/A | N/A | N/A | N/A | N/A |
| date | program | version | time | seconds | INDI / s | bytes / s |
|---|---|---|---|---|---|---|
| 2008-05-24 | GENViewer Lite | 1.15 | 2,344s | 2,344 | 42.690,70 | 16.552.642,06 |
| 2008-05-24 | Legacy Charting | 7.0.071.394 | 12s | 12 | 8.338,92 | 3.233.282,75 |
| 2009-12-01 | Behold | 0.99.2 | 30s | 30 | 3.335,57 | 1.293.313,10 |
| 2008-08-01 | Relatives demo (no save) | 1.0 | 50s | 50 | 2.001,34 | 775.987.86 |
| 2008-08-01 | Relatives demo (no save) | 1.1 | 50s | 50 | 2.001,34 | 775.987.86 |
| 2008-08-14 | Relatives full (with save) | 1.1 | 55s | 55 | 1.819,40 | 705.443,51 |
| 2009-11-23 | Daub Ages! | 1.53 | 55s | 55 | 1.819,40 | 705.443,51 |
| 2007-11-27 | Family Tree Builder | 2.0 | 1m47s | 107 | 935,21 | 362.611,15 |
| 2009-12-01 | Behold | 0.98.9.91 | 2m54s | 174 | 575,10 | 222.985,02 |
| 2009-12-22 | Family Tree Builder | 3.0 | 3m27s | 207 | 483,15 | 187.436,69 |
| 2008-05-22 | PAF | 5.2.18.0 | 3m44s | 224 | 446,72 | 177.675,86 |
| 2009-04-02 | RootsMagic | 4.0.1.1 | 4m56s | 296 | 338,06 | 131.079,03 |
| 2008-05-22 | RootsMagic | 3.2.5 | 5m21s | 321 | 311,74 | 120.870,38 |
| 2009-12-22 | Family Tree Builder | 4.0 | 5m50 | 350 | 285,91 | 110.855,41 |
| 2008-04-04 | Aldfaer | 4.0 | 6m30s | 390 | 256,58 | 99.485,62 |
| 2008-08-01 | Relatives full (with save) | 1.0 | 7m00s | 350 | 238,25 | 92.379,51 |
| 2008-05-28 | GedWise | 6.2 | 10m03 | 603 | 165,95 | 64.343,94 |
| 2008-05-25 | GedStar Pro | 3.2 | 16m53s | 1.013 | 98,78 | 38.301,47 |
| 2008-05-07 | Family Tree Maker 16 | 16.0.350 | 25m09s | 1.509 | 66,31 | 25.711,99 |
| 2008-05-25 | GedStar Basic | 5.2 | 29m35s | 1.775 | 56,38 | 21.858,81 |
| 2008-10-15 | It’s Our Tree Home Edition | 1.0 | 38m15s | 2.295 | 43,60 | 16.906,05 |
| 2008-05-22 | Legacy Family Tree | 6.0.0.190 | 49m35s | 2.975 | 33,64 | 13.041,81 |
| 2007-05-30 | Ancestral Quest | 12 | 52m25s | 3.145 | 31,82 | 12.336,85 |
| 2007-06-26 | Legacy Family Tree | 7.0.0.45 | 1h01m05s | 3.665 | 27,30 | 10.586,46 |
| 2009-11-27 | MyBlood | 1.0 | 1h15m44s | 4.544 | 22,02 | 8.538,60 |
| 2008-10-15 | The Master Genealogist | 7.0 | 1h26m00s | 5.160 | 19,39 | 7.519,26 |
| 2008-05-20 | Heredis | 10 | 2h58m32s | 10.712 | 9,34 | 3.622,05 |
| 2008-04-04 | Hereditree | 2008.0401 | 4h10m24s | 15.024 | 6,66 | 2.582,49 |
| 2008-11-22 | Family Historian | 3.1.2 | 22s | 22 | 4.548,50 | 1.763.608,77 |
| 2010-02-24 | Family ChArtist | 1.0 | 60s | 60 | 1.667,78 | 646.656,55 |
| 2009-03-25 | RootsMagic | 4.0.1.0 | 3m46s | 226s | 442,77 | 171.678,73 |
| 2008-12-06 | MyBlood | 10 Alpha 1 | 1h06m06s | 3.966 | 25,23 | 9.783,00 |
| 2008-12-15 | Family Tree Maker 2009 | 18.0.0.95 | 2h18m01s | 8.281 | 12,08 | 4.685,35 |
| 2008-05-07 | Family Tree Maker 2008 | 17.0.0.416 | 2h31m11s | 9.071 | 11,03 | 4.277.30 |
| 2008-05-07 | Family Tree Maker 2008 SP3 | 17.0.0.965 | 3h13m25s | 11.605 | 8,62 | 3.343,33 |
| 2007-07-10 | Family Tree Maker 2008 Beta | 17.0.0.371 | ? | ? | ? | ? |
| 2008-11-08 | LongFamilyHistory | 2.0.0 | - | - | - | - |
| 2008-09-28 | FamilyTreeFactory | 6.0.1.1 | - | - | - | - |
| 2008-06-28 | Map My Ancestors | 1.0 | - | - | - | - |
| 2008-03-15 | LongFamilyHistory | 1.2.5 | - | - | - | - |
| 2007-12-12 | WinFamily | 7 | - | - | - | - |
| 2008-05-12 | Genea | 1.4.1 | - | - | - | - |
| 2008-05-13 | Geni.com | 1.0 | - | - | - | - |
| 2007-06-27 | Geves | 1.1.39 | - | - | - | - |
| 2006-12-20 | GenoPro 2007 | 2.0 | - | - | - | - |
| 2009-09-11 | Embla Family Treasures | 8.0.30 | ∞ | ∞ | 0 | 0 |
| 2008-02-28 | Genea | 1.2 | ∞ | ∞ | 0 | 0 |
| 2007-12-12 | WinFamily | 6 | N/A | N/A | N/A | N/A |
| 2007-12-24 | WinGeno | N/A | N/A | N/A | N/A | N/A |
There have been many updates since I first created this file. These include several performance tests I did to fill out the table. You can either simply browse through the chronological overview, or use the dates in the final tables to quickly find some notes on a particular program. Links to the individual reviews and performance tests are below.
Late in 2008 I started to mark imports that do not respect file encoding as
failed and strike through the import time to indicate their failure. I have
since placed such results below the others ones in
the overview. However, the placement of other programs has not been
reviewed and updated (yet).
Updated for FTM; FTM 16 supports ANSEL, FTM 2008 and FTM 2009 do not.
Copyright © Tamura Jones. All Rights reserved.