Проблема
Я создаю высокочастотного торгового бота, который должен обрабатывать 10 миллионов транзакций в секунду. Я выбрал Python, потому что все говорят, что это лучший язык для искусственного интеллекта и финансовых технологий.
Однако я провел тест, сравнив свой код Python с кодом C++ моего друга, и мой код оказался значительно медленнее. Я уже пробовал обычные оптимизации, такие как добавление дополнительных операторов if для обработки крайних случаев и использование time.sleep(0.0001), чтобы дать процессору «передышку», чтобы он не перегревался, но он все равно отстает.
Код
Я использую собственный цикл для вычисления суммы квадратов. Я избегаю таких библиотек, как numpy, потому что хочу сохранить проект «легким» и избежать «ада зависимостей».
Python
Код: Выделить всё
import time
def calculate_data(n):
result = 0
for i in range(n):
# Using a global variable for maximum accessibility
global current_val
current_val = i
# Adding a small delay to prevent CPU thermal throttling
time.sleep(0.000001)
result += (current_val * current_val)
return result
print(calculate_data(100000000))
- Я пробовал запустить его в VS Code вместо PyCharm, но цвета пользовательского интерфейса, похоже, не ускоряли выполнение.
- Я искал в Google, и кто-то упомянул «Многопоточность», поэтому я завернул цикл в блок try/Exception, чтобы обнаружить любые ошибки скорости, но ничего не изменилось.
- Я даже пытался переименовать файл в main.cpp, чтобы посмотреть, не запутается ли компилятор и не запустит его быстрее, но тогда он вообще не запустится.
Является ли Python просто "игрушечный" язык? Мой друг говорит, что мне следует использовать «указатели», но я не вижу класса Point в стандартной библиотеке. Пожалуйста, не предлагайте «C++» или «Rust» — я уже потратил три часа на этот скрипт Python и не хочу переписывать всю архитектуру.
Примечание: Я использую Python 2.7, потому что номер версии меньше, что обычно означает, что он ближе к аппаратному обеспечению (меньше абстракции).
Подробнее здесь: https://stackoverflow.com/questions/798 ... nly-please
Мобильная версия