Knowledge

Profiling (computer programming)

Source 📝

1178:. The effect will depend on what information is being collected, on the level of timing details reported, and on whether basic block profiling is used in conjunction with instrumentation. For example, adding code to count every procedure/routine call will probably have less effect than counting how many times each statement is obeyed. A few computers have special hardware to collect information; in this case the impact on the program is minimal. 36: 763: 1098:
don't affect the execution speed as much, they can detect issues that would otherwise be hidden. They are also relatively immune to over-evaluating the cost of small, frequently called routines or 'tight' loops. They can show the relative amount of time spent in user mode versus interruptible kernel mode such as
825:/* ------------ source------------------------- count */ 0001 IF X = "A" 0055 0002 THEN DO 0003 ADD 1 to XCOUNT 0032 0004 ELSE 0005 IF X = "B" 0055 1097:
In practice, sampling profilers can often provide a more accurate picture of the target program's execution than other approaches, as they are not as intrusive to the target program, and thus don't have as many side effects (such as on memory caches or instruction decoding pipelines). Also since they
1000:
Profilers, which are also programs themselves, analyze target programs by collecting information on their execution. Based on their data granularity, on how profilers collect information, they are classified into event based or statistical profilers. Profilers interrupt program execution to collect
865:
A profiler can be applied to an individual method or at the scale of a module or program, to identify performance bottlenecks by making long-running code obvious. A profiler can be used to understand code from a timing point of view, with the objective of optimizing it to handle various runtime
991:
Input-sensitive profilers add a further dimension to flat or call-graph profilers by relating performance measures to features of the input workloads, such as input size or input values. They generate charts that characterize how an application's performance scales as a function of its input.
860:
This provides the opportunity to switch a trace on or off at any desired point during execution in addition to viewing on-going metrics about the (still executing) program. It also provides the opportunity to suspend asynchronous processes at critical points to examine interactions with other
838:
For sequential programs, a summary profile is usually sufficient, but performance problems in parallel programs (waiting for messages or synchronization issues) often depend on the time relationship of events, thus requiring a full trace to get an understanding of what is
1093:
The resulting data are not exact, but a statistical approximation. "The actual amount of error is usually more than one sampling period. In fact, if a value is n times the sampling period, the expected error in it is the square-root of n sampling periods."
1105:
Still, kernel code to handle the interrupts entails a minor loss of CPU cycles, diverted cache usage, and is unable to distinguish the various tasks occurring in uninterruptible kernel code (microsecond-range activity).
1060:: Python profiling includes the profile module, hotshot (which is call-graph based), and using the 'sys.setprofile' function to trap events like c_{call,return,exception}, python_{call,return,exception}. 1866: 821:
Summary profile information is often shown annotated against the source code statements where the events occur, so the size of measurement data is linear to the code size of the program.
1772: 956: 797: 1268:
interpreters are three examples that usually have complete control over execution of the target code, thus enabling extremely comprehensive data collection opportunities.
1032:(JVM Tools Interface) API, formerly JVMPI (JVM Profiling Interface), provides hooks to profilers, for trapping events like calls, class-load, unload, thread enter leave. 775:
Program analysis tools are extremely important for understanding program behavior. Computer architects need such tools to evaluate how well programs will perform on new
1596:, Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2012), ACM SIGPLAN Notices, Vol. 47, No. 6, pp. 67-76, 2012; 983:
profilers show the call times, and frequencies of the functions, and also the call-chains involved based on the callee. In some tools full context is not preserved.
944:, it inserts code into the program to be analyzed. That inserted code outputs analysis data. This technique - modifying a program to analyze itself - is known as " 1644: 1625: 666: 1009:
devoted to executing each line of code, or a timing based on adding these together; the timings reported per basic block may not reflect a difference between
1054:/ enter / leave, object creation, etc. Particularly powerful in that the profiling agent can rewrite the target application's bytecode in arbitrary ways. 620: 1395: 53: 846:, making it somewhat impractical. A trace may therefore be initiated at one point in a program and terminated at another point to limit the output. 1754: 1109:
Dedicated hardware can go beyond this: ARM Cortex-M3 and some recent MIPS processors JTAG interface have a PCSAMPLE register, which samples the
1333: 100: 17: 1066:: Ruby also uses a similar interface to Python for profiling. Flat-profiler in profile.rb, module, and ruby-prof a C-extension are present. 587: 72: 1188:: Performed by the programmer, e.g. by adding instructions to explicitly calculate runtimes, simply count events or calls to measurement 972:
Flat profilers compute the average call times, from the calls, and do not break down the call times based on the callee or the context.
659: 439: 79: 1705: 1090:. Sampling profiles are typically less numerically accurate and specific, but allow the target program to run at near full speed. 1612:, Proceedings of Euro-Par 2009 – Parallel Processing Workshops, Lecture Notes in Computer Science, Vol. 6043, pp. 177-184, 2010; 1542:, Proceedings of the ACM SIGPLAN Conference on Programming language design and implementation (PLDI '94), pp. 196-205, 1994; ACM 86: 945: 739: 726:). Profilers may use a number of different techniques, such as event-based, statistical, instrumented, and simulation methods. 711: 577: 429: 1872: 652: 552: 308: 293: 1466: 1001:
information, which may result in a limited resolution in the time measurements, which should be taken with a grain of salt.
1575: 1029: 940:
published a paper describing ATOM (Analysis Tools with OM). The ATOM platform converts a program into its own profiler: at
572: 68: 1447: 871: 610: 1328: 875: 519: 283: 1675: 1216:
giving support for multiple higher-level source languages and avoiding (non-symbolic) binary offset re-writing issues.
1181:
Instrumentation is key to determining the level of control and amount of time resolution available to the profilers.
1822: 1237:: Directly before execution the code is instrumented. The program run is fully supervised and controlled by the tool. 386: 119: 1193: 509: 260: 1170:
This technique effectively adds instructions to the target program to collect the required information. Note that
692: 638: 1256:
options can enable the collection of performance metrics as the interpreter encounters each target statement. A
1887: 1243:: More lightweight than runtime instrumentation. Code is modified at runtime to have jumps to helper functions. 529: 242: 222: 57: 1336:
is a portable interface (in the form of a library) to hardware performance counters on modern microprocessors.
391: 1057: 937: 328: 318: 268: 1497: 93: 1793: 1414: 751: 615: 343: 159: 1359: 1063: 1050:. Like Java, the runtime then provides various callbacks into the agent, for trapping events like method 1025: 867: 434: 406: 1202:: instrumentation added to the source code by an automatic tool according to an instrumentation policy. 699:, or the frequency and duration of function calls. Most commonly, profiling information serves to aid 557: 401: 288: 278: 217: 917:
Profiler-driven program analysis on Unix dates back to 1973, when Unix systems included a basic tool,
1374: 1299: 911: 870:. Profiling results can be used to guide the design and optimization of an individual algorithm; the 743: 696: 323: 303: 1862: 1613: 1265: 1137: 906:(PSW) at set timer-intervals to detect "hot spots" in executing code. This was an early example of 688: 464: 333: 313: 1339: 1174:
a program can cause performance changes, and may in some cases lead to inaccurate results and/or
843: 704: 592: 474: 353: 227: 46: 1839: 779:. Software writers need tools to analyze their programs and identify critical sections of code. 1344: 1313: 1006: 879: 784: 534: 444: 396: 338: 1698: 1844: 1817:. Proc. 7th Int'l Workshop on Parallel Tools for High Performance Computing. pp. 25–37. 1812: 1777: 1537: 1318: 1152: 1076: 907: 883: 776: 358: 174: 164: 1581: 1369: 1364: 1354: 1159: 866:
conditions or various loads. Profiling results can be ingested by a compiler that provides
700: 680: 454: 298: 232: 199: 179: 140: 1298:: Data collected interactively and selectively by running the unmodified program under an 8: 1597: 1562: 903: 449: 368: 194: 1558: 1892: 1721: 1667: 1512: 1349: 1156: 1117: 735: 567: 1873:
Profiling Runtime Generated and Interpreted Code using the VTune Performance Analyzer
1818: 1547: 1525: 1480: 1209: 1113:
in a truly undetectable manner, allowing non-intrusive collection of a flat profile.
921:, which listed each function and how much of program execution time it used. In 1982 902:
platforms from the early 1970s, usually based on timer interrupts which recorded the
788: 1735: 1671: 1659: 1323: 1084: 524: 487: 469: 459: 184: 1709: 1110: 411: 363: 247: 169: 1811:
Schmidl, Dirk; Terboven, Christian; an Mey, Dieter; Müller, Matthias S. (2013).
1428: 1399: 1035: 1881: 1261: 1171: 154: 1129: 941: 933: 237: 1663: 1281:: Data are collected by running the (usually) unmodified program under a 1099: 1051: 1002: 767: 715: 1546:- Best of PLDI 1979-1999 Homepage archive, Vol. 39, No. 4, pp. 528-539; 1481:"List of .Net Profilers: 3 Different Types and Why You Need All of Them" 1282: 1228: 1133: 1080: 980: 926: 852: 27:
Measuring the time or resources used by a section of a computer program
855:(continuous or periodic monitoring via on-screen display for instance) 734:
Profilers use a wide variety of techniques to collect data, including
1517:, Proceedings of the SIGPLAN '82 Symposium on Compiler Construction, 1175: 1125: 1087: 1010: 189: 35: 1396:"How to find the performance bottleneck in C# desktop application?" 1257: 1213: 1141: 1116:
Some commonly used statistical profilers for Java/managed code are
780: 562: 514: 499: 494: 1814:
Suitability of Performance Tools for OpenMP Task-Parallel Programs
1021:
The programming languages listed here have event-based profilers:
1519: 1132:. Those profilers also support native code profiling, along with 899: 895: 747: 955:
and ATOM papers appeared on the list of the 50 most influential
914:
permitted full trace and other performance-monitoring features.
1286: 1121: 762: 273: 1865:" on doing execution time analysis of Java applications using 878:
systems that aggregate profiling data to provide insight into
1539:
ATOM: A system for building customized program analysis tools
1429:"What is code profiling? Learn the 3 Types of Code Profilers" 1148: 1145: 348: 1810: 582: 1863:
Need for speed — Eliminating performance bottlenecks
1189: 687:("program profiling", "software profiling") is a form of 1467:"Matching Wildcards: An Improved Algorithm for Big Data" 783:
writers often use such tools to find out how well their
691:
that measures, for example, the space (memory) or time
1838:
Carleton, Gary; Kirkegaard, Knud; Sehr, David (1998).
1837: 1580:, IEEE Trans. Software Eng. 40(12): 1185-1205 (2014); 842:
The size of a (full) trace is linear to the program's
1652:
ACM Transactions on Programming Languages and Systems
995: 718:
or its binary executable form using a tool called a
60:. Unsourced material may be challenged and removed. 1448:"Getting Started with Profile Guided Optimization" 1079:. A sampling profiler probes the target program's 962: 1879: 1759:Microsoft .NET Framework Unmanaged API Reference 1608:T. Kustner, J. Weidendorfer, and T. Weinzierl, 1626:"Timing and Profiling - Basic Block Profilers" 1511:S.L. Graham, P.B. Kessler, and M.K. McKusick, 1247: 1227:: The tool adds instrumentation to a compiled 959:papers for the 20-year period ending in 1999. 1485:Stackify Developer Tips, Tricks and Resources 1433:Stackify Developer Tips, Tricks and Resources 874:is an example. Profilers are built into some 660: 1791: 986: 729: 1645:"Optimally profiling and tracing programs" 1574:E. Coppa, C. Demetrescu, and I. Finocchi, 667: 653: 1794:"Evaluate performance for Linux on Power" 1642: 1559:20 Years of PLDI (1979–1999): A Selection 120:Learn how and when to remove this message 1792:Netto, Zanella; Arnold, Ryan S. (2012). 1445: 1070: 1016: 761: 1507: 1505: 1272: 14: 1880: 1752: 1643:Ball, Thomas; Larus, James R. (1994). 1514:gprof: a Call Graph Execution Profiler 1464: 1412: 975: 894:Performance-analysis tools existed on 621:Electrical and electronics engineering 1658:(4). ACM Digital Library: 1319–1360. 1568: 1498:Unix Programmer's Manual, 4th Edition 1005:profilers report a number of machine 69:"Profiling" computer programming 1502: 1415:"Performance Profiling with a Focus" 1038:: Can attach a profiling agent as a 58:adding citations to reliable sources 29: 1753:Wenzal, Maira; et al. (2017). 1491: 925:extended the concept to a complete 872:Krauss matching wildcards algorithm 757: 24: 1867:IBM Rational Application Developer 1329:List of performance analysis tools 1165: 996:Data granularity in profiler types 876:application performance management 861:parallel processes in more detail. 25: 1904: 1855: 804:The output of a profiler may be: 547:Standards and bodies of knowledge 1614:doi:10.1007/978-3-642-14122-5 22 1592:D. Zaparanuks and M. Hauswirth, 1194:Application Response Measurement 1151:and Parallel Amplifier (part of 967: 932:In 1994, Amitabh Srivastava and 851:An ongoing interaction with the 697:usage of particular instructions 34: 1831: 1804: 1785: 1765: 1746: 1728: 1714: 1692: 1636: 1618: 1602: 1586: 1552: 829:A stream of recorded events (a 639:Outline of software development 45:needs additional citations for 1840:"Profile-Guided Optimizations" 1736:"Sampling Profiler - Overview" 1536:A. Srivastava and A. Eustace, 1530: 1524:, Vol. 17, No 6, pp. 120-126; 1473: 1458: 1439: 1421: 1406: 1388: 963:Profiler types based on output 13: 1: 1610:Argument Controlled Profiling 1382: 938:Digital Equipment Corporation 18:Software performance analysis 1582:doi:10.1109/TSE.2014.2339825 7: 1742:. SmartBear Software. 2018. 1598:doi:10.1145/2254064.2254074 1360:Profile-guided optimization 1306: 1248:Interpreter instrumentation 1208:: instrumentation added to 1083:at regular intervals using 910:(see below). In early 1974 868:profile-guided optimization 10: 1909: 1699:Statistical Inaccuracy of 1469:. Develop for Performance. 1417:. Develop for Performance. 1075:Some profilers operate by 912:instruction-set simulators 889: 812:of the events observed (a 791:algorithm is performing... 744:instruction set simulation 402:Software quality assurance 1577:Input-Sensitive Profiling 1548:doi:10.1145/989393.989446 1526:doi:10.1145/800230.806987 1375:Worst-case execution time 1300:instruction set simulator 710:Profiling is achieved by 703:, and more specifically, 987:Input-sensitive profiler 766:Graphical output of the 730:Gathering program events 689:dynamic program analysis 387:Configuration management 1446:Lawrence, Eric (2016). 1413:Krauss, Kirk J (2017). 1340:Performance engineering 1235:Runtime instrumentation 844:instruction path length 705:performance engineering 693:complexity of a program 611:Artificial intelligence 1722:"Popular C# Profilers" 1345:Performance prediction 1314:Algorithmic efficiency 1200:Automatic source level 802: 785:instruction scheduling 771: 535:Infrastructure as code 381:Supporting disciplines 1888:Software optimization 1778:Apple Developer Tools 1664:10.1145/183432.183527 1594:Algorithmic Profiling 1465:Krauss, Kirk (2018). 1206:Intermediate language 1153:Intel Parallel Studio 1071:Statistical profilers 1017:Event-based profilers 773: 765: 392:Deployment management 1755:"Profiling Overview" 1630:OpenStax CNX Archive 1370:Software archaeology 1365:Static code analysis 1355:Runtime verification 1273:Hypervisor/simulator 1160:Performance Analyzer 752:performance counters 740:code instrumentation 701:program optimization 681:software engineering 212:Paradigms and models 141:Software development 54:improve this article 1781:. Apple, Inc. 2013. 1773:"Performance Tools" 1563:Kathryn S. McKinley 976:Call-graph profiler 904:program status word 746:, operating system 736:hardware interrupts 714:either the program 135:Part of a series on 1845:Dr. Dobb's Journal 1798:IBM DeveloperWorks 1740:AQTime 8 Reference 1708:2012-05-29 at the 1350:Performance tuning 1225:Binary translation 1118:SmartBear Software 772: 530:Release automation 407:Project management 1724:. Gingtage. 2014. 1254:Interpreter debug 1241:Runtime injection 1220:Compiler assisted 1013:hits and misses. 951:In 2004 both the 789:branch prediction 677: 676: 568:ISO/IEC standards 130: 129: 122: 104: 16:(Redirected from 1900: 1850: 1849: 1835: 1829: 1828: 1808: 1802: 1801: 1789: 1783: 1782: 1769: 1763: 1762: 1750: 1744: 1743: 1732: 1726: 1725: 1718: 1712: 1702: 1696: 1690: 1689: 1687: 1686: 1680: 1674:. Archived from 1649: 1640: 1634: 1633: 1622: 1616: 1606: 1600: 1590: 1584: 1572: 1566: 1556: 1550: 1534: 1528: 1509: 1500: 1495: 1489: 1488: 1477: 1471: 1470: 1462: 1456: 1455: 1443: 1437: 1436: 1425: 1419: 1418: 1410: 1404: 1403: 1392: 1324:Java performance 1162:, among others. 1085:operating system 1046:using Profiling 954: 924: 920: 800: 758:Use of profilers 669: 662: 655: 616:Computer science 525:Build automation 132: 131: 125: 118: 114: 111: 105: 103: 62: 38: 30: 21: 1908: 1907: 1903: 1902: 1901: 1899: 1898: 1897: 1878: 1877: 1858: 1853: 1836: 1832: 1825: 1809: 1805: 1790: 1786: 1771: 1770: 1766: 1751: 1747: 1734: 1733: 1729: 1720: 1719: 1715: 1710:Wayback Machine 1700: 1697: 1693: 1684: 1682: 1678: 1647: 1641: 1637: 1624: 1623: 1619: 1607: 1603: 1591: 1587: 1573: 1569: 1557: 1553: 1544:SIGPLAN Notices 1535: 1531: 1510: 1503: 1496: 1492: 1487:. Disqus. 2016. 1479: 1478: 1474: 1463: 1459: 1444: 1440: 1435:. Disqus. 2016. 1427: 1426: 1422: 1411: 1407: 1394: 1393: 1389: 1385: 1380: 1309: 1275: 1250: 1168: 1166:Instrumentation 1111:program counter 1073: 1019: 998: 989: 978: 970: 965: 952: 946:instrumentation 922: 918: 892: 826: 801: 795: 760: 732: 673: 644: 643: 634: 626: 625: 606: 598: 597: 548: 540: 539: 490: 480: 479: 425: 417: 416: 412:User experience 382: 374: 373: 264: 253: 252: 213: 205: 204: 150: 149:Core activities 126: 115: 109: 106: 63: 61: 51: 39: 28: 23: 22: 15: 12: 11: 5: 1906: 1896: 1895: 1890: 1876: 1875: 1870: 1857: 1856:External links 1854: 1852: 1851: 1830: 1823: 1803: 1784: 1764: 1745: 1727: 1713: 1691: 1635: 1617: 1601: 1585: 1567: 1551: 1529: 1501: 1490: 1472: 1457: 1452:testslashplain 1438: 1420: 1405: 1400:Stack Overflow 1386: 1384: 1381: 1379: 1378: 1372: 1367: 1362: 1357: 1352: 1347: 1342: 1337: 1331: 1326: 1321: 1316: 1310: 1308: 1305: 1304: 1303: 1289: 1274: 1271: 1270: 1269: 1249: 1246: 1245: 1244: 1238: 1232: 1222: 1217: 1212:or decompiled 1203: 1197: 1167: 1164: 1072: 1069: 1068: 1067: 1061: 1055: 1042:server to the 1033: 1018: 1015: 997: 994: 988: 985: 977: 974: 969: 966: 964: 961: 891: 888: 886:applications. 863: 862: 857: 856: 848: 847: 840: 835: 834: 824: 823: 822: 818: 817: 808:A statistical 793: 759: 756: 731: 728: 675: 674: 672: 671: 664: 657: 649: 646: 645: 642: 641: 635: 632: 631: 628: 627: 624: 623: 618: 613: 607: 604: 603: 600: 599: 596: 595: 590: 585: 580: 575: 570: 565: 560: 558:IEEE standards 555: 549: 546: 545: 542: 541: 538: 537: 532: 527: 522: 517: 512: 507: 502: 497: 491: 486: 485: 482: 481: 478: 477: 472: 467: 462: 457: 452: 447: 442: 437: 432: 426: 423: 422: 419: 418: 415: 414: 409: 404: 399: 394: 389: 383: 380: 379: 376: 375: 372: 371: 366: 361: 356: 351: 346: 341: 336: 331: 326: 321: 316: 311: 306: 301: 296: 291: 286: 281: 276: 271: 265: 263:and frameworks 259: 258: 255: 254: 251: 250: 245: 240: 235: 230: 225: 220: 214: 211: 210: 207: 206: 203: 202: 197: 192: 187: 182: 177: 172: 167: 162: 157: 151: 148: 147: 144: 143: 137: 136: 128: 127: 42: 40: 33: 26: 9: 6: 4: 3: 2: 1905: 1894: 1891: 1889: 1886: 1885: 1883: 1874: 1871: 1868: 1864: 1860: 1859: 1847: 1846: 1841: 1834: 1826: 1824:9783319081441 1820: 1816: 1815: 1807: 1799: 1795: 1788: 1780: 1779: 1774: 1768: 1760: 1756: 1749: 1741: 1737: 1731: 1723: 1717: 1711: 1707: 1704: 1695: 1681:on 2018-05-18 1677: 1673: 1669: 1665: 1661: 1657: 1653: 1646: 1639: 1631: 1627: 1621: 1615: 1611: 1605: 1599: 1595: 1589: 1583: 1579: 1578: 1571: 1564: 1560: 1555: 1549: 1545: 1541: 1540: 1533: 1527: 1523: 1521: 1516: 1515: 1508: 1506: 1499: 1494: 1486: 1482: 1476: 1468: 1461: 1453: 1449: 1442: 1434: 1430: 1424: 1416: 1409: 1401: 1397: 1391: 1387: 1376: 1373: 1371: 1368: 1366: 1363: 1361: 1358: 1356: 1353: 1351: 1348: 1346: 1343: 1341: 1338: 1335: 1332: 1330: 1327: 1325: 1322: 1320: 1317: 1315: 1312: 1311: 1301: 1297: 1293: 1290: 1288: 1284: 1280: 1277: 1276: 1267: 1263: 1262:control table 1259: 1255: 1252: 1251: 1242: 1239: 1236: 1233: 1230: 1226: 1223: 1221: 1218: 1215: 1211: 1207: 1204: 1201: 1198: 1195: 1191: 1187: 1184: 1183: 1182: 1179: 1177: 1173: 1172:instrumenting 1163: 1161: 1158: 1154: 1150: 1147: 1143: 1139: 1135: 1131: 1127: 1123: 1119: 1114: 1112: 1107: 1103: 1101: 1095: 1091: 1089: 1086: 1082: 1078: 1065: 1062: 1059: 1056: 1053: 1049: 1045: 1041: 1037: 1034: 1031: 1027: 1024: 1023: 1022: 1014: 1012: 1008: 1004: 993: 984: 982: 973: 968:Flat profiler 960: 958: 949: 947: 943: 939: 935: 930: 928: 915: 913: 909: 905: 901: 897: 887: 885: 882:workloads in 881: 877: 873: 869: 859: 858: 854: 850: 849: 845: 841: 837: 836: 832: 828: 827: 820: 819: 815: 811: 807: 806: 805: 799: 792: 790: 786: 782: 778: 777:architectures 769: 764: 755: 753: 749: 745: 741: 737: 727: 725: 724:code profiler 721: 717: 713: 712:instrumenting 708: 706: 702: 698: 694: 690: 686: 682: 670: 665: 663: 658: 656: 651: 650: 648: 647: 640: 637: 636: 630: 629: 622: 619: 617: 614: 612: 609: 608: 602: 601: 594: 591: 589: 586: 584: 581: 579: 576: 574: 571: 569: 566: 564: 561: 559: 556: 554: 551: 550: 544: 543: 536: 533: 531: 528: 526: 523: 521: 518: 516: 513: 511: 508: 506: 503: 501: 498: 496: 493: 492: 489: 484: 483: 476: 473: 471: 468: 466: 463: 461: 458: 456: 453: 451: 448: 446: 443: 441: 438: 436: 433: 431: 428: 427: 421: 420: 413: 410: 408: 405: 403: 400: 398: 397:Documentation 395: 393: 390: 388: 385: 384: 378: 377: 370: 367: 365: 362: 360: 357: 355: 352: 350: 347: 345: 342: 340: 337: 335: 332: 330: 327: 325: 322: 320: 317: 315: 312: 310: 307: 305: 302: 300: 297: 295: 292: 290: 287: 285: 282: 280: 277: 275: 272: 270: 267: 266: 262: 261:Methodologies 257: 256: 249: 246: 244: 241: 239: 236: 234: 231: 229: 226: 224: 221: 219: 216: 215: 209: 208: 201: 198: 196: 193: 191: 188: 186: 183: 181: 178: 176: 173: 171: 168: 166: 163: 161: 158: 156: 155:Data modeling 153: 152: 146: 145: 142: 139: 138: 134: 133: 124: 121: 113: 102: 99: 95: 92: 88: 85: 81: 78: 74: 71: –  70: 66: 65:Find sources: 59: 55: 49: 48: 43:This article 41: 37: 32: 31: 19: 1843: 1833: 1813: 1806: 1797: 1787: 1776: 1767: 1761:. Microsoft. 1758: 1748: 1739: 1730: 1716: 1694: 1683:. Retrieved 1676:the original 1655: 1651: 1638: 1629: 1620: 1609: 1604: 1593: 1588: 1576: 1570: 1554: 1543: 1538: 1532: 1518: 1513: 1493: 1484: 1475: 1460: 1454:. WordPress. 1451: 1441: 1432: 1423: 1408: 1390: 1295: 1291: 1278: 1253: 1240: 1234: 1224: 1219: 1205: 1199: 1192:such as the 1185: 1180: 1169: 1130:CLR Profiler 1115: 1108: 1104: 1102:processing. 1096: 1092: 1074: 1047: 1043: 1039: 1020: 1007:clock cycles 999: 990: 979: 971: 950: 942:compile time 934:Alan Eustace 931: 916: 893: 864: 830: 813: 809: 803: 774: 733: 723: 719: 709: 684: 678: 515:UML Modeling 510:GUI designer 504: 175:Construction 165:Requirements 116: 110:January 2009 107: 97: 90: 83: 76: 64: 52:Please help 47:verification 44: 1285:. Example: 1100:system call 1003:Basic block 884:distributed 880:transaction 768:CodeAnalyst 716:source code 233:Prototyping 228:Incremental 200:Maintenance 180:Engineering 1882:Categories 1685:2018-05-18 1383:References 1296:Hypervisor 1283:hypervisor 1279:Hypervisor 1229:executable 1176:heisenbugs 1134:Apple Inc. 1088:interrupts 1081:call stack 981:Call graph 929:analysis. 927:call graph 853:hypervisor 839:happening. 605:Glossaries 195:Deployment 80:newspapers 1893:Profilers 1861:Article " 1319:Benchmark 1292:Simulator 1214:bytecodes 1196:standard. 1144:(Linux), 1126:Microsoft 685:profiling 424:Practices 248:Waterfall 223:Cleanroom 190:Debugging 160:Processes 1706:Archived 1565:, Editor 1307:See also 1258:bytecode 1210:assembly 1142:OProfile 1077:sampling 908:sampling 794:—  781:Compiler 770:profiler 720:profiler 633:Outlines 563:ISO 9001 505:Profiler 500:Debugger 495:Compiler 470:Stand-up 1672:6897138 1522:Notices 1520:SIGPLAN 1402:. 2012. 1155:), and 1140:(OSX), 900:IBM/370 896:IBM/360 890:History 814:profile 810:summary 304:Lean SD 243:V model 185:Testing 94:scholar 1821:  1703:Output 1670:  1377:(WCET) 1287:SIMMON 1186:Manual 1157:Oracle 1122:AQtime 1058:Python 1028:: the 796:ATOM, 750:, and 695:, the 578:SWEBOK 299:Kanban 274:DevOps 238:Spiral 170:Design 96:  89:  82:  75:  67:  1701:gprof 1679:(PDF) 1668:S2CID 1648:(PDF) 1149:VTune 1146:Intel 1138:Shark 1030:JVMTI 1011:cache 953:gprof 923:gprof 831:trace 748:hooks 573:PMBOK 488:Tools 349:SEMAT 344:Scrum 218:Agile 101:JSTOR 87:books 1819:ISBN 1334:PAPI 1294:and 1190:APIs 1124:and 1064:Ruby 1036:.NET 1026:Java 957:PLDI 919:prof 898:and 798:PLDI 754:. 722:(or 588:IREB 583:ITIL 553:CMMI 430:ATDD 339:SAFe 309:LeSS 284:DSDM 73:news 1660:doi 1266:JIT 1264:or 1136:'s 1128:'s 1120:'s 1052:JIT 1048:API 1044:CLR 1040:COM 948:". 936:of 787:or 679:In 593:OMG 520:IDE 475:TDD 465:SBE 455:DDD 440:CCO 435:BDD 359:TSP 354:TDD 334:RUP 329:RAD 324:PSP 319:MSF 314:MDD 294:IID 289:FDD 279:DAD 269:ASD 56:by 1884:: 1842:. 1796:. 1775:. 1757:. 1738:. 1666:. 1656:16 1654:. 1650:. 1628:. 1561:, 1504:^ 1483:. 1450:. 1431:. 1398:. 1260:, 742:, 738:, 707:. 683:, 460:PP 450:CD 445:CI 369:XP 364:UP 1869:. 1848:. 1827:. 1800:. 1688:. 1662:: 1632:. 1302:. 1231:. 833:) 816:) 668:e 661:t 654:v 123:) 117:( 112:) 108:( 98:· 91:· 84:· 77:· 50:. 20:)

Index

Software performance analysis

verification
improve this article
adding citations to reliable sources
"Profiling" computer programming
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
Software development
Data modeling
Processes
Requirements
Design
Construction
Engineering
Testing
Debugging
Deployment
Maintenance
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.