joaovaleriano / Master-IFT_cooperation-and-flows

Repository dedicated to codes written for the development of my Master's research at IFT-Unesp
GNU General Public License v3.0
0 stars 0 forks source link

evitar variaveis globais #1

Open lmiq opened 1 year ago

lmiq commented 1 year ago

https://github.com/joaovaleriano/Master-IFT_cooperation-and-flows/blob/3be19f9e5e6347ab6a90d3c98f9ce31d770d4b45/src/spatial_pg_comp.jl#L273C3-L273C3

Boa tarde João. Achei seu repositório por ele estar usando o CellListMap (que eu desenvolvo), e dei uma olhada em como era código.

Se você colocar tudo o que está nesta parte do código dentro de uma função, tipo:


function run_simulation()
    n_pv = 5
    nP = 1000
    ... etc

   close(macro_pop_file)
end
run_simulation()

você não precisa todos esses global no código, e é possível que fique muito mais rápido.

(desculpe a intromissão - também tem algumas dicas para deixar o código mais rápido, se for importante para o seu caso)

joaovaleriano commented 1 year ago

Boa tarde Leandro. Muito obrigado pela sugestão! Ainda não estudei quase nada de Julia, esse é um dos meus primeiros códigos nessa linguagem. Imaginei que eu não estava fazendo do melhor jeito mesmo haha, mas ainda não fui atrás de aprender direito.

Muito obrigado pela sugestão, vou dar uma ajeitada nesse código quando tiver tempo. E parabéns pelo desenvolvimento da CellListMap, achei muito bacana.

lmiq commented 1 year ago

O código está bastante razoável, já que você encapsulou bem cada parte em uma função, o que é uma boa ideia sempre, mas principalmente em Julia, porque isso é bom para a performance. No final tem essa parte que você colocou tudo no escopo global que é particularmente ruim em Julia, só isso.

O resto seriam detalhes (incluindo, por exemplo, o reaproveitamento do buffer das listas criadas pelo CellListMap, mas só vale à pena falar disso se o programa precisar de fato ser muito mais rápido).