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:
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:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.