Я работаю над скриптом Python. Он берет информацию о трафике подписчиков из файлов и помещает ее в специальные структуры. И это работает. Но это работает слишком медленно. Я написал тот же алгоритм на PHP, и он работает намного быстрее. Я заметил, что Python тратит много времени, чтобы поместить данные в текст. Скрипт PHP тратит 6 секунд на обработку моего тестового файла, а скрипт Python - 12 секунд (около 7 секунд, чтобы получить данные из файла, и 5 секунд, чтобы заполнить структуры).
Мои структуры выглядят так: struct [subscriberId] [protocolId] = octents
И я использую следующую функцию, чтобы заполнить их:
def addBytesToStatStruct(struct, subscriberId, protocolId, octents):
if subscriberId in struct:
if protocolId in struct[subscriberId]:
struct[subscriberId][protocolId] += octents
return
else:
struct[subscriberId][protocolId] = octents
return
else:
struct[subscriberId] = {protocolId : octents}
Может я что-то не так делаю? Я предполагаю, что моя проблема появляется из-за столкновений, происходящих во время добавления. Как я знаю, PHP использует цепочку, но Python использует открытую адресацию. Не могли бы вы дать мне подсказку, как я могу заставить Python диктовать быстрее?