Litanies of Performance(it’s a reference page) |
Version | v1.0.0 | |
---|---|---|---|
Updated | |||
Author | Seb | Home |
This is a reference page containing links to various resources related to software performance. In the past I have found collections of resources like this very handy, especially when starting out or investigating something new, so hopefully this might be helpful to someone too.
https://www.amd.com/en/developer/uprof.html
https://www.brendangregg.com
https://github.com/bpftrace/bpftrace
https://www.janestreet.com/performance-engineering/
https://www.agner.org/optimize/
https://people.freebsd.org/~lstewart/articles/cpumemory.pdf
https://lwn.net/Articles/255364/
Pahole
usage
examples)https://fgiesen.wordpress.com
https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/58479_amd-epyc-9005-tg-hpc.pdf
https://www.intel.com/content/www/us/en/content-details/671488/intel-64-and-ia-32-architectures-optimization-reference-manual-volume-1.html
https://www.intel.com/content/www/us/en/developer/articles/technical/data-layout-optimization-using-simd-data-layout-templates.html
System to perform asynchronous I/O with fewer system calls. Also supports network operations. List of supported operations (as of 2024-12-01):
io_uring_prep_accept io_uring_prep_read
io_uring_prep_accept_direct io_uring_prep_read_fixed
io_uring_prep_cancel io_uring_prep_readv
io_uring_prep_cancel64 io_uring_prep_readv2
io_uring_prep_cancel_fd io_uring_prep_recv
io_uring_prep_close io_uring_prep_recvmsg
io_uring_prep_close_direct io_uring_prep_recvmsg_multishot
io_uring_prep_cmd io_uring_prep_recv_multishot
io_uring_prep_connect io_uring_prep_remove_buffers
io_uring_prep_fadvise io_uring_prep_rename
io_uring_prep_fallocate io_uring_prep_renameat
io_uring_prep_fgetxattr io_uring_prep_send
io_uring_prep_files_update io_uring_prep_sendmsg
io_uring_prep_fsetxattr io_uring_prep_sendmsg_zc
io_uring_prep_fsync io_uring_prep_send_set_addr
io_uring_prep_getxattr io_uring_prep_sendto
io_uring_prep_link io_uring_prep_send_zc
io_uring_prep_linkat io_uring_prep_send_zc_fixed
io_uring_prep_link_timeout io_uring_prep_setxattr
io_uring_prep_madvise io_uring_prep_shutdown
io_uring_prep_mkdir io_uring_prep_socket
io_uring_prep_mkdirat io_uring_prep_socket_direct
io_uring_prep_msg_ring io_uring_prep_socket_direct_alloc
io_uring_prep_msg_ring_cqe_flags io_uring_prep_splice
io_uring_prep_msg_ring_fd io_uring_prep_statx
io_uring_prep_msg_ring_fd_alloc io_uring_prep_symlink
io_uring_prep_multishot_accept io_uring_prep_symlinkat
io_uring_prep_multishot_accept_direct io_uring_prep_sync_file_range
io_uring_prep_nop io_uring_prep_tee
io_uring_prep_openat io_uring_prep_timeout
io_uring_prep_openat2 io_uring_prep_timeout_remove
io_uring_prep_openat2_direct io_uring_prep_timeout_update
io_uring_prep_openat_direct io_uring_prep_unlink
io_uring_prep_poll_add io_uring_prep_unlinkat
io_uring_prep_poll_multishot io_uring_prep_write
io_uring_prep_poll_remove io_uring_prep_write_fixed
io_uring_prep_poll_update io_uring_prep_writev
io_uring_prep_provide_buffers io_uring_prep_writev2
Contains references for related to Single Instruction Multiple Data instructions/intrinsics.
https://en.algorithmica.org/hpc/simd/ http://sci.tuomastonteri.fi/programming/sse
OpenCL can be used to program a variety of devices, including GPUs.