latest update: 20250419

1. 히스토리

https://velog.io/@pjknkda/파이썬-Nested-Model-Serialization-벤치마크-dataclasses-pydantic-attrs

https://velog.io/@pjknkda/파이썬-Nested-Model-Serialization-벤치마크-dataclasses-pydantic-attrs

2022-Developing High-Frequency Trading Systems

2022-Developing High-Frequency Trading Systems

Feeder Handler, Trading Strategy, Order Gateway와 통신하려면 어쩔 수 없이 파이썬 오브젝트를 상응하는 bytes로 변환하기 위해 serialization/deserialization를 할 수 밖에 없다.

2. 문제해결

image.png

출처: https://velog.io/@pjknkda/파이썬-Nested-Model-Serialization-벤치마크-dataclasses-pydantic-attrs

pjknkda님이 여러가지 부분으로 테스틀 한 결과 msgspec + msgpack이 가장 높은 성능을 보여주고 있었다.

attrs와 orjson도 우수한 성적을 보여주고 있고 대체로 msgspec이 빠른 경향이 있다.

3. 결론

  1. 성능적인 측면에서는 msgspec + msgpack 조합이 가장 우수한 성능을 보여주었다.
  2. attrs와 orjson도 준수한 성능을 보여주어 대안으로 고려할 만하다.
  3. HFT 시스템에서는 마이크로초 단위의 성능이 중요하므로, msgspec + msgpack 조합을 우선적으로 적용하는 것이 바람직하다.
  4. 다만 실제 구현시에는 팀의 기술 스택, 유지보수성, 디버깅 용이성 등도 함께 고려하여 최종 선택을 해야 한다.