Linkzeit-Engpässe finden

8

Eine Frage, die ich nicht beantwortet habe, finde ich sehr interessant. Alle anderen Threads scheinen zu diskutieren, das Problem zu erzwingen, dh zu dynamischer Verknüpfung zu wechseln oder einfach die Arbeitslast zu verteilen. Ich bin eher daran interessiert herauszufinden, was die Verknüpfung so lange dauert.

Das Problem ist, dass ich keine offiziellen Möglichkeiten sehe, die relevanten Metriken vom Linker zu bekommen, zumindest nicht für den VS-Linker. Es gibt den / verbose-Schalter, der Ihnen eine Menge Einblick in das, was der Linker tut, gibt, aber es wird Ihnen überhaupt keine feinkörnigen Timings geben.

Ich habe darüber nachgedacht, den Linker-Prozess von einem Werkzeug aus auszuführen, das die tatsächlichen Messungen auf einer Linie durchführt. Obwohl dies keine genauen Timings liefert, wäre es wahrscheinlich genau genug, um Engpässe zu identifizieren.

Wer kennt einen besseren Ansatz oder vielleicht sogar ein Werkzeug für diese Aufgabe?

    
Ylisar 22.09.2010, 11:55
quelle

2 Antworten

6

Zu diesem Thema auf Ссылка wurde eine ausgezeichnete Artikelserie gefunden, die ziemlich genau erklärt, was die Linkzeiten betrifft. Am Ende liefert der Autor auch ein Programm, das er Symbolsortierung nennt (bei Ссылка ). Dies ist das Programm, nach dem ich gesucht habe, da es sehr hilft, herauszufinden, wo Sie sich anstrengen sollten. Es tut nicht weh, dass es ungefähr 10 Sekunden dauerte, um es zum Laufen zu bringen und zu arbeiten!

    
Ylisar 22.09.2010, 15:24
quelle
3

Obwohl Sie Ihre Frage nicht direkt beantworten:

In VS ist der Linker auch für die Codegenerierung und die globale Optimierung verantwortlich. Sie können versuchen, "Link Time Code Generation" zu deaktivieren, um die Verbindungszeit zu verkürzen.

EDIT: So kann man aufgrund der globalen Natur des Linkers nicht sagen, dass das Verknüpfen von Modul X 10% der Zeit benötigt.

    
ybungalobill 22.09.2010 11:59
quelle

Tags und Links