Simply record the time from entering `main` to start listening sockets.
total_memory_tracker.setAllowUseJemallocMemory(allow_use_jemalloc_memory);
            auto * global_overcommit_tracker = global_context->getGlobalOvercommitTracker();
            total_memory_tracker.setOvercommitTracker(global_overcommit_tracker);
            
            
            
            updateLevels(*config, logger());
            global_context->setClustersConfig(config, has_zookeeper);
            global_context->setMacros(std::make_unique<Macros>(*config, "macros", log));
            global_context->setExternalAuthenticatorsConfig(*config);
            global_context->loadOrReloadDictionaries(*config);
            global_context->loadOrReloadUserDefinedExecutableFunctions(*config);
            global_context->setRemoteHostFilter(*config);
            
            if (config->has("max_table_size_to_drop"))
                global_context->setMaxTableSizeToDrop(config->getUInt64("max_table_size_to_drop"));
            if (config->has("max_partition_size_to_drop"))
                global_context->setMaxPartitionSizeToDrop(config->getUInt64("max_partition_size_to_drop"));
            ConcurrencyControl::SlotCount concurrent_threads_soft_limit = ConcurrencyControl::Unlimited;
            if (config->has("concurrent_threads_soft_limit_num"))
            {
                auto value = config->getUInt64("concurrent_threads_soft_limit_num", 0);
                if (value > 0 && value < concurrent_threads_soft_limit)
                    concurrent_threads_soft_limit = value;
            }
            if (config->has("concurrent_threads_soft_limit_ratio_to_cores"))
            {
                auto value = config->getUInt64("concurrent_threads_soft_limit_ratio_to_cores", 0) * std::thread::hardware_concurrency();
                if (value > 0 && value < concurrent_threads_soft_limit)
                    concurrent_threads_soft_limit = value;