<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="gmail_quote"><div><br>Se a função qsort da cstdlib ordena tudo em memória, você vai afirmar que "C não dá conta de fazer o sort pois faz tudo em memória."? Eu acredito que não, pois exatamente existe uma diferença entre o que é a linguagem (Perl) e as funções nativas (ou a biblioteca padrão que já vem com ela, se preferir assim). 

<br></div></div></blockquote><div><br>Bem, isso é apenas uma questao de semântica. O importante é que concordamos que a função sort do Perl (que é usada no script exemplo do André) carrega tudo em memória! :)<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="gmail_quote"><div> Cara, eu gosto muito de C/C++... mas que deve-se tomar cuidado com afirmações deste tipo. A menos que você tenha alguma otimização especificamente em C/C++ (ou seja, saiba o que está fazendo), minah tendência é de duvidar um pouco dessas afirmações.<br>



<br>Anyway, eu acho que um sorting de 1 TB está mais para IO-bound (ou memory bound) do que CPU-bound.<br></div></div></blockquote><div><br>Concordo, ao final o gargalo sempre será o IO.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div class="gmail_quote"><div> <br></div></div></blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="gmail_quote"><div class="im">

<blockquote class="gmail_quote" style="border-left:1px solid rgb(204, 204, 204);margin:0pt 0pt 0pt 0.8ex;padding-left:1ex">

<div class="gmail_quote"><div>
<br>
Por exemplo, estou utilizando o nsort que é feito em C e utiliza threads para o sorting. Ele ordena 1TB em 33 minutos em um PC comum com multicore.<br></div></div></blockquote></div><div><br>Você já testou isso, ou você está apenas repetindo o que está escrito no site do nsort?<br>

</div></div></blockquote><div><br>Eu nunca testei com um arquivo de 1TB, e com certeza deve ser em um servidor com HDDs de estado sólido.<br><br>Porem utilizo diariamente em arquivos de 15GB e dependendo da concorrencia do IO (as vezes processo mais de uma corrida ao mesmo tempo) o nsort demora de 10-20 minutos (o gnu sort demora mais de 1 hora). Além disso os HDDs são de 7200 RPMs.<br>

<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="gmail_quote"><div>No mais, isso não me diz - quase - nada... você não deu mais nenhuma informação sobre o ambiente. O que é um "PM comum com multicore"? São quantos cores? Qual o clock? Como é feito o IO? Local, rede? Se for em rede, qual o tipo de rede de interconexão? etc.<br>

</div></div></blockquote><div><br>Bem, eu não tenho um benchmark para mostrar, e na verdade estou apenas compartilhando ao que sinto na prática. Alem disso não trabalho pra a Ordinal (empresa do nsort).<br><br>Mas no site deles tem um benchmark: <a href="http://www.ordinal.com/white/whitepaper.html">http://www.ordinal.com/white/whitepaper.html</a><br>

</div></div>