170 похожих чатов

Здравствуйте. Есть скрипт на Python для Windows. Внутри скрипта вызывается

сборка фронтэнда на Vue. Используется multiprocessing, чтобы билд делался в двух отдельных процессах для увеличения скорости и сокращения времени.

По видимости из-за того, что оба процесса по билду пишут в родительский консоль, выгоды от multiprocessing нет.

Пробовал опцию --silent - https://docs.npmjs.com/cli/v9/using-npm/config#shorthands-and-other-cli-niceties, но не помогло.

Решил запустить новую консоль и в ней вызвать команду по билду. Но коммуникации с новой консолью не получается. То есть вызвать команду в новой консоли не получается. Родительская консоль при этом остается открытой.

Код, который пробовал:
p = subprocess.Popen(r"cmd", stdout=PIPE, stdin=PIPE, stderr=subprocess.STDOUT, creationflags=subprocess.CREATE_NEW_CONSOLE)
p.communicate("dir".encode())

Как создать консоль во время работы скрипта и в новой консоли вызвать нужную команду? (Windows)

29 ответов

9 просмотров

А какая задача решается-то? Запустить npm в фоне?

> Используется multiprocessing, чтобы билд делался в двух отдельных процессах для увеличения скорости и сокращения времени. для того чтобы использование двух процессов сокращало время надо чтобы они делали разную работу. Как ты этого добиваешься?

Gordey-Kachurin Автор вопроса

Сбилдить 2 проекта с разными настройками. Но чтобы билд был по скорости билда одного проекта

Gordey-Kachurin Автор вопроса

А как узнать?

Gordey Kachurin
А как узнать?

ну когда ты сборку запускаешь, Как выглядит нагрузка на процессор?

Gordey-Kachurin Автор вопроса
Tishka17
ну когда ты сборку запускаешь, Как выглядит нагруз...

Визуально не определить. А как это поможет?

Gordey-Kachurin Автор вопроса
Andrey
Ну, subprocess.Popen(["npm", "run", "build", ...],...

ты не знаешь, npm сам умеет юзать больше одного ядра?

Gordey Kachurin
Это и делал

В изначальном сообщении этого не вижу, там только какие-то многоуровневые костыли непонятного назначения

Gordey-Kachurin Автор вопроса
Tishka17
в смыле не определить?

В прямом. Не видно. График как график, ничего подозрительного. А как это поможет?

Gordey Kachurin
В прямом. Не видно. График как график, ничего подо...

в графике сколько CPU занято при сборке одного проекта?

Tishka17
ты не знаешь, npm сам умеет юзать больше одного яд...

Не знаю. Но там два проекта же, видимо нужно просто два раза запустить npm

Andrey
Не знаю. Но там два проекта же, видимо нужно прост...

просто если один юзает все ядра, запуск второго будет не так хорош

Gordey Kachurin
Ты тоже самое написал

Нет, рекомендую перечитать моё сообщение

Gordey-Kachurin Автор вопроса
Tishka17
в графике сколько CPU занято при сборке одного про...

Я так и не понял зачем это. Что это даст? Но такого нет что 100% занято. От 50 до 80 гдето колеблется

При чём тут стдаут? По времени работы бил двух занял как билд одного?

Gordey Kachurin
Я так и не понял зачем это. Что это даст? Но таког...

1. если у тебя скрипт занмиает весь процессор, второй будет ему мешать 2. если у тебя скорость скрипта упирается ввод/вывод (например дисковый), а процессор свободен, второй будет ему мешать

Tishka17
ну из пайпа читать бы ещё

Ну вообще да, а то процесс заблокируется ещё на записи в стдаут

Gordey-Kachurin Автор вопроса
Gordey-Kachurin Автор вопроса
Gordey Kachurin
1 не занимает. 2 не упирается

А ты чем это отслеживаешь?

Gordey Kachurin
1 не занимает. 2 не упирается

1. 100% одного ядра или всех? 2. как не упирается, почему тогда 80%, а не 100%

Gordey Kachurin
1 не занимает. 2 не упирается

Если "не упирается", то откуда вывод, что скрипты мешают друг другу стдаутами?

Gordey-Kachurin Автор вопроса
Антон Novikov
Если "не упирается", то откуда вывод, что скрипты ...

На мой изначальный вопрос ответь пожалуйста

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта