Att skriva samtidiga program är en utmaning eftersom utvecklare måste överväga både funktionell korrekthet och prestandakrav. Många programanalyser och testtekniker har föreslagits för att upptäcka funktionsfel, t.ex. orsakade av felaktig synkronisering. Dock har lite arbete gjorts för att hjälpa utvecklare att ta itu med prestandaproblem i samtidiga program, t.ex. på grund av ineffektiv synkronisering. I detta dokument presenteras SyncProf, en konvergensfokuserad profileringsmetod som hjälper till att upptäcka, lokalisera och optimera synkroniseringsflaskhalsar. I motsats till traditionella profilerare, SyncProf utför upprepade gånger ett program med olika ingångar och sammanfattar observerade prestandabeteende. En viktig nyhet är en grafbaserad representation av relationer mellan kritiska sektioner, som är grunden för att beräkna prestandapåverkan av kritiska sektioner, för att identifiera grundorsaken till en flaskhals, och för att föreslå optimeringsstrategier för utvecklaren. Vi utvärderar SyncProf på 19 versioner av åtta C/C++ projekt med både kända och tidigare okända synkronisering flaskhalsar. Resultaten visar att SyncProf på ett effektivt sätt lokaliserar grundorsakerna till dessa flaskhalsar med högre precision än en toppmodern låsprofiler och att det föreslår värdefulla strategier för att undvika flaskhalsar. •Programvara och dess konstruktion → Programvarunoteringar och verktyg;
SyncProf REF använder Pin för att upptäcka, lokalisera och optimera synkroniseringens prestandaproblem.
SyncProf: detecting, localizing, and optimizing synchronization bottlenecks
{'venue': 'ISSTA 2016', 'journal': None, 'mag_field_of_study': ['Computer Science']}