Оптимизация BLF-ридера для производительности Python CAN
У меня есть большой файл BLF, blf_file.blf
и связанный файл DBC, dbc_file.dbc
, Мне нужно прочитать и расшифровать все сообщения и сохранить их в списке. Для этого я использую библиотеку python-can:
decoded_mess = []
db = cantools.db.load_file('dbc_file.dbc')
with can.BLFReader('blf_file.blf') as can_log:
for msg in can_log:
decoded_mess.append(
db.decode_message(msg.arbitration_id, msg.data)
)
Однако для моих blf-файлов (> 100 МБ) это занимает до 5 минут.
Есть ли способ ускорить это? В конце я хочу сохранить каждый сигнал в отдельном списке, так что понимание списка не вариант.