Python subprocess.run работает слишком долго [закрыто]Python

Программы на Python
Ответить
Anonymous
 Python subprocess.run работает слишком долго [закрыто]

Сообщение Anonymous »

Следующий код является частью гораздо более крупного проекта, но это все, что нужно показать, чтобы проиллюстрировать мою проблему.
В ответ на запрос более конкретного кода для иллюстрации проблемы Я предоставил следующую информацию. Я запускаю код Python в терминале. Test.c выполняется за мс. Но по показанному времени видно, что подпроцесс не возвращается в течение 12,6 секунд.
Что делает subprocess.run в течение 12,6 секунд и как мне избавиться от этой задержки?
И вот самое интересное. Я использую Geany в качестве программного обеспечения для редактирования и сборки. Если я создам test.c, код запустится без задержки. Если я создаю test.c, задержка составляет 12,6 секунды.
Обратите внимание, что из аргументов команды можно передать файл любого типа. Я позволю вам заменить любой файл по вашему желанию.
test.py:
import time
import subprocess
from datetime import datetime

cmd_args = ['/home/wa4ywm/gr-ft8_rxtx/Test/test', '/home/wa4ywm/ gr-ft8_rxtx/python/Hello.txt']

now = float(datetime.now().strftime('%S.%f'))
print ("Before ft8_decode = ", now)
ft8_decode = subprocess.Popen(cmd_args, stdout=subprocess.PIPE)
output, _ = ft8_decode.communicate()
print(output.decode())

now = float(datetime.now().strftime('%S.%f'))
print ("After ft8_decode = ", now)
< /code>
Вот типичный вывод, показывающий время выполнения: < /p>
wa4ywm@raspberrypi:~/gr-ft8_rxtx/Test $ python3 test.py
Before ft8_decode = 24.282739

After ft8_decode = Sun Jan 19 13:52:25 2025

After ft8_decode = 36.900071
< /code>
test.c:
#include
#include
#include
#include
#include
#include

int main(int argc, char **argv)
{
printf("Time4 before load_wav = \n");
return 0;
}
< /code>
Следующий Makefile адаптирован из файла, используемого для более крупного проекта. < /p>
Makefile: < /p>
CFLAGS = -O3 -ggdb3 -fsanitize=address
CPPFLAGS = -std=c11 -I.
LDFLAGS = -lm -fsanitize=address -static-libasan

TARGETS = test

.PHONY: run_tests all clean

all: $(TARGETS)

run_tests: test
@./test

test: test.o fft/kiss_fftr.o fft/kiss_fft.o ft8/decode.o ft8/encode.o ft8/crc.o ft8/ldpc.o ft8/unpack.o ft8/text.o ft8/constants.o common/wave.o
$(CXX) $(LDFLAGS) -o $@ $^

clean:
rm -f *.o ft8/*.o common/*.o fft/*.o $(TARGETS)
install:
$(AR) rc libft8.a ft8/constants.o ft8/encode.o ft8/pack.o ft8/text.o common/wave.o
install libft8.a /usr/lib/libft8.a
< /code>
Я понял, что эта проблема возникла после обновления программного обеспечения для моей операционной системы и обновления радио GNU. Я работаю на Raspberry Pi, и ОС была обновлена ​​до книжного червя. Радио GNU было обновлено до 3.10, которое включало обновление на Python 3.11.
Любые комментарии?

Подробнее здесь: https://stackoverflow.com/questions/793 ... r-too-long
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»