Well, it seems I found at least one factor having a severe impact on efficiency.
First, I changed the algorithm which generates vCard strings. Now it iterates onyl over set properties instead of querying all possible properties.
But while doing this I noticed that my internal modification tracking database contained multiple versions of the same contact. Apparently, duplicates weren’t checked correctly.
I’m doing some final tests today regarding ThunderSync’s synchronisation efficiency. Stay tuned!