The required device information is exported by the sysfs file system. For every device the kernel has detected and initialized, a directory with the device name is created. It contains attribute files with device-specific properties.
Every time a device is added or removed, the kernel sends a uevent to notify udev of the change. The udev daemon reads and parses all provided rules from the /etc/udev/rules.d/*.rules files once at start-up and keeps them in memory. If rules files are changed, added or removed, the daemon can reload the in-memory representation of all rules with the command udevadm control reload_rules. This is also done when running /etc/init.d/boot.udev reload.
To know how to optimize a boot time please see this pdf file
This also would help you
If you want to check if there is a device stoping udev use this command
udevadm trigger -v