Question related to the PHP engine and ArrayBuffers
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 10/100
Direção de pesquisa
Esta é uma questão de desempenho ainda sem resposta sobre o engine do PHP, o comportamento do JIT baseado em LLVM, ArrayBuffers e uma possível RFC. Nenhum arquivo, teste ou ponto de entrada é especificado, portanto comece pesquisando a extensão e o contexto dos componentes internos do PHP descritos na issue. A conclusão exigiria uma avaliação de desempenho apoiada por um maintainer e uma proposta de RFC claramente delimitada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hi; you don’t know me but I would like to say that it was a sad thing for the PHP community to learn that you moved over to LLVM; but I hope you are doing well. Over to my question:
I learned today some background from the PHP internals and the process leading up to PHP version 7, and also the JIT feature in 7.4:
That PHP’s JIT performance suffers because of extra CPU cache misses when JIT is enabled. Based on this, Dmitri did some great work on optimizing the memory requirements for important data structures in PHP 7.
This reduced the memory requirements of PHP and contributed to a ca 200% performance increase for PHP - mostly attributed to reduced memory bandwidth needs.
Question:
Can an extension like this ever hope to compete in performance, compared to a native op-code based approach to implementing array buffers? If so; I will consider adopting it into an RFC for PHP.
(Also because I am curious, but irrelevant for this extension; but I know you have an opinion: Could potentially re-implementing for example most of the \str* functions as pure PHP - reduce the amount of CPU cache space needed and lead to a faster language in general?)
- Linguagem predominante
- C
- Estrelas
- 43
- Forks
- 5
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de nikic/buffer
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
-
Q: Project StatusAberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 18/100
Todas as issues de nikic/buffer
Issues semelhantes
-
Crash in mdns componentAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
openvehicles/Open-Vehicle-Monitoring-System-3#1575 ·
Mantenedores costumam responder em até 4 dias
-
cryptsetup
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
tursodatabase/libsql#2312 ·
Mantenedores costumam responder em até 11 dias
-
Please tag a commitAberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 75/100
-
Rename "Receipt" to "Recipe"Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100