이것은 매우 유사 원본 버전입니다. Jason Donenfeld는 WireGuard의 주요 개발자이자 Linux 커널 난수 관련 코드의 관리자입니다. 그의 리더십 하에 Linux 커널의 난수 생성기 코드는 크게 개선되었습니다.
이전 버전의 Linux 5.17에서는 Jason Donenfeld가 임의 코드의 SHA1을 BLAKE2s로 대체했습니다. BLAKE2의 특성상 일반적으로 SHA1보다 빠르고 안전합니다. 테스트 후 이 간단한 스위치로 인해 속도가 약 131% 증가했습니다.
Linux 5.17의 엄청난 속도 향상에도 불구하고 Jason Donenfeld는 만족하지 않습니다. 그래서 Linux 5.18 버전에서는 랜덤코드를 좀 더 개선했습니다.
Linux의 Random.git 저장소 로그를 보면 개발자 Jason Donenfeld가 지난 이틀 동안 수많은 코드를 제출했다는 것을 (위 그림) 알 수 있습니다. 이러한 커밋은 모두 3월 말 Linux 5.18의 병합 기간이 시작될 때 커널에 도입될 것입니다.
임의의 바이트를 가져오기 위한 getrandom() 호출이 개발 중인 최신 코드를 사용하면 더 나은 성능을 얻을 수 있다는 것이 이메일에서 특별히 강조되었습니다. Intel Xeon E5-2697 v2 @ 2.70GHz CPU 및 112G 메모리가 장착된 장치에서 스트레스-ng getrandom() 벤치마크 테스트를 수행한 후 8450%의 성능 향상이 달성되었습니다.
이 변경은 기본적으로 이전 전역 구조(실제로는 Numa 노드별 구조)를 CPU별 구조로 변경합니다. 즉, 빠른 경로의 많은 잠금이 사라집니다. 따라서 다중 코어가 있는 CPU에서 getrandom()을 동시에 시도하면 성능이 향상된다는 데는 의심의 여지가 없습니다. 하지만 테스트에서 8450%의 향상을 가져올 것이라고는 기대하지 않았습니다.
또한, Numa당에서 CPU당으로 변경할 때 작업 대기열이 온라인 상태가 될 때까지 더 이상 연기할 필요가 없습니다. 앞서 말했듯이 이번 개선은 코어 수가 많은 컴퓨터와 서버에 큰 이점을 가져올 것입니다.
위 내용은 성능 8450% 향상, Linux 커널 기능 대폭 향상의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!