Atualizar
Eles não! Pelo menos, não para mim.
Veja minha resposta.
Pergunta original
De acordo com os benchmarks Phoronix do ano passado , os aplicativos no FreeBSD rodam mais lentamente do que no Debian (incluindo o mecanismo de xadrez Stockfish, Node.js, codificação FLAC e outras tarefas computacionais).
O próprio artigo do Phoronix atribui algumas das diferenças de desempenho ao uso do Clang em vez do compilador GCC. Algumas outras opiniões dizem que o uso do ZFS torna o FreeBSD mais lento, pois o ZFS é inerentemente mais lento que o ext4.
Mas mesmo tarefas puramente computacionais no FreeBSD compiladas com o GCC8 eram mais lentas do que no Linux.
Qual é a causa disso? É inerente às diferenças entre os kernels do FreeBSD e do Linux, pode ser causado pela pior qualidade dos drivers ou há algum outro motivo?
PS Para torná-lo mais específico, aqui está um programa puramente computacional bastante simples que roda mais devagar no FreeBSD do que no Linux de acordo com o Phoronix: m-queens 1.2 . Compilado assim:
gcc -o m-queens.bin main.c -O2 -march=native -mtune=native -std=c99 -fopenmp
Como essa é uma tarefa multithread que foi executada em duas CPUs de 20 núcleos, suspeito que a diferença de desempenho se resume a quão bem o sistema operacional lida com vários threads.
PPS Para deixar mais claro, estou ciente de que o FreeBSD possui bons recursos de rede e que é usado pela Netflix . A questão é especificamente sobre tarefas computacionais, como a acima.
PPPS Depois de instalar o FreeBSD (TrueOS) no meu desktop de 6 núcleos junto com o Ubuntu e tentar executar o benchmark do queens, não notei nenhuma diferença significativa no desempenho multithread. Embora o Phoronix afirme que funcionou 39% mais lento no FreeBSD, em meus testes foi apenas 3,7% mais lento, o que pode ser atribuído a uma pequena diferença na versão do compilador (gcc 7.4 no TrueOS, gcc 7.2 no Ubuntu). Vou testar mais depois.
Tantos votos negativos me estimularam a instalar o FreeBSD (TrueOS) no meu computador desktop de 6 núcleos para testá-lo sozinho. (NOTA: Eu não recomendo tentar instalar o TrueOS junto com outros sistemas operacionais, porque esta instalação limpou um dos meus discos rígidos, mesmo que eu tenha tentado instalá-lo em uma unidade USB... Não é uma experiência amigável.)
Como resultado, depois de executar alguns testes da suíte de testes Phoronix no Ubuntu e no FreeBSD, não consegui ver o efeito “aplicativos lentos no FreeBSD”. Muito pelo contrário, alguns aplicativos rodaram significativamente (10–25%) mais rápido no FreeBSD :
Como você pode ver, a única tarefa que executou mais lentamente no FreeBSD foi o problema multithreaded N queens, levando 3,7% mais tempo do que no Ubuntu.
Potenciais armadilhas:
Em conclusão, ao testar o desempenho do sistema operacional, você deve:
Entendo, o benchmark envolve o uso do OpenMP. É daí que pode vir a diferença. Verifique qual biblioteca de tempo de execução OpenMP está sendo usada.
Outra coisa que vale a pena olhar - código de desmontagem ou representação intermediária. Ele pode permitir que você encontre rapidamente diferenças nas instruções que estão sendo executadas.
Para resumir, não há uma resposta rápida e definitiva para isso, e você precisa fazer alguma pesquisa.