PowerShell – medindo desempenho

Este foi o script TestPdfPageCount.ps1 (em PowerShell) usado para repetir os testes do PdfPageCount de maneira fácil para todas as linguagens, pegando todos os arquivos PDF de uma pasta recursivamente.

Exemplo de uso:

PS C:\> cd \PDFs
PS C:\PDFs> Set-ExecutionPolicy Unrestricted -Scope Process
PS C:\PDFs> . .\TestPdfPageCount.ps1
PS C:\PDFs> run_for_all_pdfs_one_call java_pdf
etc.

O resto (transferir os melhores tempos para uma planilha, por exemplo), eu fiz no olhômetro mesmo.

Se alguém quiser traduzir para outro shell ou linguagem de programação, eu gostaria de ver a tradução, pois achei que ficou bem legal em PowerShell e queria saber que outras linguagens poderiam expressar o mesmo código sucintamente. Não estou com vontade de ler o manual do Bash de novo. :-)

$java_exe_path = 'C:\Program Files\Java\jdk1.6.0_21\bin\java.exe'
$java_class_path = '<preencha-aqui>'

$python_exe_path = 'C:\Python31\python.exe'
$python_py_path = '<preencha-aqui>\PdfPageCount.pyc'

$d_path = '<preencha-aqui>\PdfPageCount.exe'
$cxx_path = '<preencha-aqui>\PdfPageCount.exe'
$fsharp_path = '<preencha-aqui>\PdfPageCount.exe'

function java_pdf {
    &$java_exe_path -cp $java_class_path PdfPageCount @args
}

function python_pdf {
    &$python_exe_path $python_py_path @args
}

function d_pdf {
    &$d_path @args
}

function cxx_pdf {
    &$cxx_path @args
}

function fsharp_pdf {
    &$fsharp_path @args
}

function get_pdf_list {
    ls -filter *.pdf -recurse | foreach { $_.fullname }
}

function run_for_all_pdfs_multiple_calls($cmd) {
    $all_pdfs = get_pdf_list
    measure-command { $all_pdfs | foreach { &$cmd $_ | out-host } }
}

function run_for_all_pdfs_one_call($cmd) {
    $all_pdfs = get_pdf_list
    measure-command { &$cmd @all_pdfs | out-host }
}

Um pensamento sobre “PowerShell – medindo desempenho

  1. Comparação de desempenho lendo PDFs « Visions of hope

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s