Uma análise de performance das linguagens de programação no processamento paralelo
Authors/Creators
Contributors
Editor:
Description
Cada linguagem é otimizada para resolver determinado tipo de tarefa, portanto, é necessário ter conhecimento sobre suas limitações e pontos fortes para escolher a que melhor atenderá à necessidade. O paralelismo é uma técnica que tem se destacado como fundamental em razão da crescente complexidade dos problemas computacionais. Este trabalho visa analisar a performance da execução e a implementação de atividades, neste cenário. A partir de estudos realizados com algumas linguagens que se destacam atualmente no mercado para a construção de aplicações backend, e que avaliaram a complexidade para desenvolvimento da solução e o aproveitamento dos recursos computacionais, realizou-se um benchmarking de performance entre: GO, JAVA, C# e PYTHON. Os resultados apontam que as linguagens GO e C# se destacam de maneira relevante perante as outras no paralelismo, tornando-as melhores opções entre as demais para a tarefa.
Abstract (English)
Each language is optimized to solve a specific type of task, thus it is necessary to have knowledge about their limitations and strengths to choose the one that will best meet the need. Parallelism is a technique that has stood out as fundamental due to the increasing complexity of computational problems. This work aims to analyze the performance of execution and implementation of activities in this scenario. Based on studies conducted with some languages that currently stand out in the market for backend application development, and which evaluated the complexity for solution development and the utilization of computational resources, a performance benchmarking was conducted between: GO, JAVA, C#, and PYTHON. The results indicate that the GO and C# languages stand out significantly compared to others in parallelism, making them better options among the others for the task.
Files
linguagens-de-programacao.pdf
Files
(618.2 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:a2bb4876d0c7145711ac444e8856678d
|
618.2 kB | Preview Download |
Additional details
Additional titles
- Translated title (English)
- An analysis of programming languages performance in parallel processing
References
- AMAZOM. O que é Python?. [s.d.]. Disponível em: <https://aws.amazon.com/pt/what-is/python/>. Acesso em: 12 maio 2023.
- BARBOSA, Marco Antonio de Castro; TOSCANI, Laira Vieira. Metodologia para o cálculo da complexidade de algoritmos e o processo de avaliação das equações de complexidade. XXXIV Simpósio Brasileiro de Pesquisa Operacional 8 A 11 De Novembro De 2002, Rio De Janeiro/Rj.
- DAVID, Lion; et al. Investigating Managed Language Runtime Performance: Why JavaScript and Python are 8x and 29x slower than C++, yet Java and Go can be Faster?. July 11–13, 2022. Disponível em: <https://www.usenix.org/system/files/atc22-lion.pdf>. Acesso em: 21 out. 2023.
- GOTARDO, Reginaldo Aparecido. Linguagens De Programação 1. ed. Rio de Janeiro: Seses, 2015.
- JAVA. O que é tecnologia Java e por que preciso dela?. [s.d.]. Disponível em: <https://www.java.com/pt-BR/download/help/whatis_java.html>. Acesso em: 15 out. 2023.
- MA, Josué Tza Hsin. Multicore. [s.d.]. Disponível em: <https://ic.unicamp.br/~rodolfo/Cursos/mo401/2s2005/Trabalho/049180-multicores.pdf>. Acesso em: 9 maio 2023.
- MICROSOFT. O que é o .NET?. [s.d.]a. Disponível em: <https://dotnet.microsoft.com/pt-br/learn/dotnet/what-is-dotnet>. Acesso em: 13 maio 2023.
- MICROSOFT. Um tour pela linguagem C#. [s.d.]b. Disponível em: <https://learn.microsoft.com/pt-br/dotnet/csharp/tour-of-csharp/>. Acesso em: 10 out. 2023.
- NAVAUX, Philippe O. A.. Introdução ao Processamento Paralelo. 29 set. 1988. Disponível em: <https://sol.sbc.org.br/index.php/sbac-pad/article/view/23511>. Acesso em: 10 maio 2023.
- ORACLE. JAVA. Oracle Brasil, [s.d.]. Disponível em: <https://www.oracle.com/br/java/>. Acesso em: 15 out. 2023.
- ÖSTLUND, Mikael. Benchmarking Parallelism and Concurrency in the Encore Programming Language. out. 2016. Disponível em: <https://www.diva-portal.org/smash/get/diva2:1043738/FULLTEXT02.pdf>. Acesso em: 20 out. 2023.
- PIKE, Rob. Using Go at Google. 27 ago. 2007. Disponível em: <https://go.dev/solutions/google/>. Acesso em: 14 mai. 2023.
- PYTHON. The Python Tutoria. [s.d.]. Disponível em: <https://docs.python.org/3/tutorial/index.html>. Acesso em: 12 maio 2023.
- SAKURAY, Mônica. Estudo da Influência dos Parâmetros de Algoritmos Paralelos da Computação Evolutiva no seu Desempenho em Plataformas Multicore. 2014. Disponível em: <https://repositorio.ufu.br/bitstream/123456789/14340/1/EstudoInfluenciaParametros.pdf>. Acesso em: 10 mai. 2023.
- SCAPIN, Victor Hugo Santos. avaliação do desempenho de bibliotecas para paralelização em arquiteturas multicore: PTHREAD e OPENMP. 2013. Disponível em: <http://repositorio.utfpr.edu.br/jspui/bitstream/1/7436/1/CP_COADS_2013_1_12.pdf>. Acesso em: 10 mai. 2023.
- SUNDAR, B Shyam. C# vs Rust vs Go. A performance benchmarking in Kubernetes. feb. 2019. Disponível em: <https://medium.com/@shyamsundarb/c-vs-rust-vs-go-a-performance-benchmarking-in-kubernetes-c303b67b84b5>. Acesso em: 20 out. 2023.