Syncing of contacts totally depends upon the network speed and the two devices like iOS or Mac or other apple device must be signed in with the same Apple ID and password .
Some prefer manual method to sync contact connect a cable between two machines see this article Sync contacts and calendars in iTunes on Mac with devices - Apple Support
A second method is Keep your contacts up to date on all of your devices with iCloud - Apple Support
Also if some contacts are in google for example in your iOS device , open your gmail account click on contacts and sign in with your gmail address and password , select the contacts or address book and export as v card the contacts will be exported in the location finder - download , you can then import them in your address book once again see these articles iCloud: Export a contact as a vCard from iCloud Contacts
iCloud: Import a contact into iCloud Contacts