Ich baue einen Web-Crawler in .Net, der ca. 500 HTTP-Web-Anfragen gleichzeitig ausführt. Alles läuft gut, aber das Problem entsteht an einigen Punkten; Sieht so aus, als würde der Garbage-Collection-Thread die gesamte Anwendungspause für ein paar Sekunden übernehmen. Gibt es trotzdem eine Reduzierung der von GC generierten Verzögerung?GC unterbricht die volle Anwendungsaktivität
1
A
Antwort
1
Guidance on how to avoid GC problems in .Net
Um die beste aus dem allocator erhalten Sie Praktiken wie Folgendes zu berücksichtigen sind:
- alle des Speichers (oder so viel wie möglich) zuweisen zu sein verwendet mit einer gegebenen Datenstruktur gleichzeitig.
- Entfernen Sie vorübergehende Zuweisungen, die mit wenig Aufwand vermieden werden können, .
- minimieren die Anzahl der Objektzeiger geschrieben werden, vor allem solche Schreiben in älteren Objekten.
- Reduzieren Sie die Dichte von Zeigern in Ihren Datenstrukturen.
- Machen Sie begrenzte Verwendung von Finalizern, und dann nur auf "Blatt" -Objekte, wie viel wie möglich. Brechen Sie Objekte, wenn notwendig ist, um damit zu helfen.
Eine regelmäßige Praxis Ihrer Schlüsseldatenstrukturen zu überprüfen und die Durchführung Speichernutzungsprofilen mit Werkzeugen wie Allocation Profiler wird ein langer Weg zu halten Sie Ihre Speichernutzung wirksam und mit der Garbage Collector arbeitet seine besten gehen für dich.
Sie können request a GC irgend bequemer Zeit, die später die Pausen reduzieren
nach rechts auf die damit verbundenen Fragen Stackoverflow Schauen Sie auch - es gibt einige relevante denen es ----->
Verwandte Themen
- 1. Sehr langsame Java-volle GC-Wanduhr
- 2. Java-Speicherbereinigung und atomare Ereignisse/stop gc unterbricht die Unterbrechung einer Sequenz von Funktionsaufrufen
- 3. Warum unterbricht "c.execute (...)" die Schleife?
- 4. Javascript close() nicht unterbricht die Ausführung
- 5. android.hardware.telephony unterbricht die Installation auf dem Emulator
- 6. ExecutorService, die Aufgaben nach einem Timeout unterbricht
- 7. GC-Pausendauer von GC-Protokollen
- 8. Sperrbildschirm unterbricht NSURLConnection
- 9. Leerzeichen unterbricht MySQL Zeichenfolgensuche
- 10. Wer unterbricht meinen Thread?
- 11. WPF: unterbricht MessageBox PreviewMouseDown?
- 12. Erhalten Sie die volle Elementhöhe?
- 13. Android GC - LogCat immer zeigt GC-Aktivität
- 14. Wird eine Anmerkung hinzugefügt, die die Java-Serialisierung unterbricht?
- 15. Wie man einen Funktionsaufruf "unterbricht"?
- 16. Warum unterbricht @SuppressWarnings meinen Code?
- 17. UICollectionViewFlowLayouts geschätzte ItemSize unterbricht Scrollen?
- 18. Wie unterbricht SoundCloud andere Tabs?
- 19. GC Ausgabe Klärung
- 20. ParNew GC wird die Welt stoppen?
- 21. Warten für die gleichzeitige GC blockiert
- 22. div decken nicht die volle Breite
- 23. RecyclerView belegt nicht die volle Höhe
- 24. CSS über die volle Breite Roll-Menü
- 25. Wie SeekBar die volle Breite des Elterns
- 26. Webview nimmt nicht die volle Höhe
- 27. Listview Footerview nicht die volle Breite
- 28. wie man die volle URL einschließlich fängt #
- 29. Eine existierende Bedingung schreiben, die eine While-Schleife unterbricht
- 30. Wie unterbricht man die Formularbuchung bis zum Drücken der Bestätigungstaste?