Ich habe gerade eine Neuinstallation von Vim gemacht, und bei dieser Gelegenheit habe ich einige neue Plugins zu meiner VIM-Konfiguration hinzugefügt. Das Problem ist, dass jetzt, wenn ich die erste Änderung in der Datei mache, VIM-Blöcke und eine meiner CPUs 100% Auslastung erreichen. Dies passiert auch hin und wieder, während ich die Datei bearbeite. Dies ist in der vorherigen Konfiguration nie passiert. Wie kann ich herausfinden, welches Plugin meine CPU zerstört?Wie finde ich heraus, welches VIM-Plugin schuld ist, um meine CPU zu überlasten?
Antwort
Als Alternative zu romainl ‚s (schön und einfach) trial-and-error approach: einmal mit vim-internen Profiler
Ich habe so getan: :he profile
.
Möglicherweise müssen Sie vim selbst kompilieren, um sie zu aktivieren (die Profilerstellung ist in der Standard-vim-Verteilung nicht aktiviert).
Dann
:profile start filename
Profilierung zu aktivieren und Ihre Profildaten zu filename
schreiben, bearbeiten Sie Ihre Datei (die die CPU auf 100% drückt), einmal
:profdel
Profilierung zu stoppen. Beenden Sie vim und Sie werden die Profilinformationen in filename
geschrieben finden.
In Debian Squeeze ist die Profilerstellung von vim standardmäßig aktiviert. Danke eckes! – sica07
Um alles zu profilieren, starte ': profile start filename', dann': profile func * ' Dann mach die langsame Sache, und schließe vim. ': profdel' wird nicht benötigt - es hört nicht auf zu profilieren, es entfernt stattdessen einen Teil des Codes für die Aufnahme in die Profilerstellung. – glebtv
- 1. Wie finde ich meine CPU-Topologie?
- 2. Wie finde ich heraus, welches Plugin die gewünschte Klasse enthält?
- 3. Wie finde ich heraus, welches Javascript ausgelöst wird?
- 4. In Emacs, wie finde ich heraus, welches Paket lädt Tramp?
- 5. Wie finde ich heraus, welches Paket/Verfahren eine Tabelle aktualisiert?
- 6. Wie finde ich heraus, welches Pip-Paket eine Datei besitzt?
- 7. Wie finde ich heraus, welches Objekt gerade Fokus hat?
- 8. Wie finde ich heraus, was svchost macht?
- 9. Wie finde ich heraus, von welchem Laufwerk meine Exe läuft?
- 10. Wie finde ich heraus, ob mein Prozess CPU-gebunden ist, I/O-gebunden, Speicher gebunden oder
- 11. Wie finde ich heraus, dass meine Seite gekratzt wird?
- 12. Wie finde ich heraus, dass meine Abhängigkeitseigenschaft geändert wurde?
- 13. Wie finde ich meinen ISP heraus?
- 14. Wie finde ich heraus, was meinen SQL Server hämmert?
- 15. Wie finde ich heraus, warum meine App rails 3 mit mod_rails so langsam ist?
- 16. Wie finde ich heraus, ob das Blatt leer ist?
- 17. Wie finde ich heraus, worauf mach_msg_trap wartet?
- 18. Wie finde ich heraus, welche Version von mod_perl installiert ist?
- 19. Wie finde ich heraus, ob ein Steuerelement gerade ungültig ist?
- 20. Wie finde ich heraus, was dieser Charakter ist?
- 21. Wie finde ich in Java heraus, wie groß meine maximale Heapgröße ist?
- 22. Wie finde ich heraus, was an einem Ort ist?
- 23. ActiveDirectory: Wie finde ich heraus, ob eine Domain verfügbar ist?
- 24. Wie finde ich heraus, warum renameTo() fehlgeschlagen ist?
- 25. Wie finde ich heraus, wo NUnit hängt?
- 26. Kann ich Julia benutzen, um meine GPU & CPU zu programmieren?
- 27. Wie finde ich heraus, ob ein Termin privat ist
- 28. Wie finde ich den aktuellen Überlaufprüfkontext heraus?
- 29. Wie finde ich heraus, ob die Zeit vergangen ist? Swift
- 30. Wie finde ich heraus, wer mit ActionCable verbunden ist?
Durch Entfernen jedes Plugins und Hinzufügen von ihnen eins nach dem anderen. – romainl
Dies ist die Methode, die ich versuche zu vermeiden, aber wenn es keinen anderen Weg gibt ... – sica07
Nun, Sie könnten wahrscheinlich einen Profiler verwenden. Sie könnten auch ein paar Sekunden über Ihre Plugins nachdenken: Einige sind vollständig passiv, bis Sie sie aufrufen und haben wahrscheinlich nichts mit Ihrem Problem zu tun, andere starten Hintergrundprozesse bei jedem Tastendruck ... Die Statusleiste zum Beispiel kann sich sehr oft selbst aktualisieren, um VCS anzuzeigen Status oder was auch immer. – romainl