One way to make format faster is to modify the bytes-per-inode value. By specifying higher value for this parameter, less inode will be created. As such, this is probably not suitable for all the situation but it is suitable if your filesystem only need to store virtual machine image which each file is big in size but the number of files in the filesystem is less.
As you can see, the lesser inode need to be created, your format can be done faster. Command to do this:
mkfs -t ext4 -i 131072 /dev/sdb1
Another way is to use lazy_itable_init when formatting filesystem. This is actually the fastest way because inode table is not fully initialized when you do the formatting, instead, it is initialized when it is mounted. So this again might not be suitable if you are doing some IO test as you never know how this initialization process will affect your real IO performance. So the time taken is -- only 3.785s.
Command to do this
mkfs -t ext4 -E lazy_itable_init=1 /dev/sdb1
time command was used to capture the elpased time
Disk size is 500GB