Zauważyłem to podczas używania kilku różnych języków w systemach Windows XP, Vista i 7. Jeśli zrzucisz kilka tysięcy linii na sekundę do okna konsoli, ma to ogólnie negatywny wpływ na wydajność systemu. Komputer jest szybki i zawsze szybszy, a konsola wygląda jak zwykły tekst na zapleczu. Gdzie jest szyjka butelki?Dlaczego dane wyjściowe konsoli są zbyt wolne?
Odpowiedz
printf etc musi przejść od procesu z jakimś IPC do procesu oknie konsoli (Csrss lub conhost) Konsola może być również wspólnie z kilku procesów, więc nie jest również pewne synchronizacja i buforowanie dzieje.
Podążam za tym, co mówisz w swojej odpowiedzi. Czy masz więcej szczegółów, które możesz podać? – QueueHammer
@QueueHammer Implementacja systemu Windows jest nieudokumentowana i używa LPC (http://j00ru.vexillium.org/?p=527) WINE dostarcza również użytecznych informacji (https://www.winehq.org/docs/winedev-guide/ x3423). Dla zabawy uruchom "cmd.exe/C dir/S/B c: \" i zobacz, jak csrss używa 50% procesora w jednym rdzeniu systemu 2000/XP ... – Anders
- 1. Dlaczego dane wyjściowe są różne?
- 2. Dlaczego dane wyjściowe wyglądają tak?
- 3. ANDROID - przetwarzanie dx zbyt wolne
- 4. Aparaty do przechwytywania aparatów z rodziny Android2 są zbyt wolne.
- 5. Formatowanie napisów w Pythonie zbyt wolne
- 6. Dlaczego zadania Powershell są takie wolne?
- 7. Dlaczego narzędzia programistów IE są tak wolne?
- 8. Jak wyświetlić dane wyjściowe w konsoli podczas pisania notatnika RMarkdown?
- 9. Kiedy dane wyjściowe repr są przydatne?
- 10. Jak ładnie wydrukować dane wyjściowe dziennika w konsoli Chrome DevTools?
- 11. Ładnie formatujące dane wyjściowe do konsoli, określające liczbę zakładek
- 12. testowe dane wejściowe/wyjściowe aplikacji konsoli programu Visual Studio 2012
- 13. Skąd dane wyjściowe konsoli pochodzą z hostowanej aplikacji usług IIS?
- 14. Jak zapisać dane wyjściowe do konsoli z niestandardowego zadania MSBuild?
- 15. $ _POST ['dane'] nie jest zdefiniowany, jeśli dane są zbyt duże
- 16. Jakie polecenia wyjściowe konsoli są dostępne w programie Erlang?
- 17. Wyłącz wyjściowe dane wyjściowe logcat w Androidzie
- 18. Wyślij dane wyjściowe do pliku
- 19. konkatować dane wyjściowe podzapytania?
- 20. Dlaczego są `dane (" kendogrid ")` Undefined?
- 21. Dlaczego właściwości PropertyInfo SetValue i GetValue są takie wolne?
- 22. Dlaczego ViewPager i GridLayout z 30 elementami są bardzo wolne?
- 23. dlaczego java's BigInteger gcd i modInverse są takie wolne?
- 24. Perl: dane wyjściowe funkcji rand() są częściowo przewidywalne?
- 25. Dane wyjściowe nie są zagregowane ostrzeżeń o śledzeniu?
- 26. Jak sprawdzić, czy dane wyjściowe polecenia "znajdź" są puste?
- 27. nieoczekiwane dane wyjściowe z agregatu
- 28. Dlaczego dane wyjściowe inv() i pinv() nie są równe w Matlab i Octave?
- 29. Podczas uruchamiania serwera Django z funkcją dokowania/rysowania, dlaczego niektóre dane wyjściowe protokołu są ukryte?
- 30. node.js splice zbyt wolne dla więcej niż 70000 pozycji
Myślę, że odpowiedziałeś na własne pytanie ... –
Na jakiej platformie obserwujesz to zachowanie. Windows, Unix, Mac. . .? –
To jest uczciwe pytanie, z punktu widzenia, że wiedząc, dlaczego aktualizacja okna tekstowego jest powolna może zapewnić wgląd w to, czy jest coś, co można zrobić, aby złagodzić problem, takie jak dołączenie strumienia wyjściowego konsoli do jakiejś niestandardowej logiki aktualizacji okna. – supercat