Your SlideShare is downloading. ×
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Ebook Content Development: An Example
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ebook Content Development: An Example

369

Published on

This is an example of an ebook designed to assist in the buying cycle.

This is an example of an ebook designed to assist in the buying cycle.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
369
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Application performance is crucial to a software company’s success.When code executes quickly and efficiently, customers see an applica-tion as responsive and reliable; they view it as a time saver. However,when code goes into unnecessary loops, calls extraneous functions,or trips over itself in some other way, customers have a very differentreaction. They may find the application sluggish or unresponsive, andcome to see using it as a waste of time. If left unchecked, this ultimatelyresults in frustrated users, a damaged corporate reputation, and count-less lost dollars in revenue. AQtime Pro 2 by SMARTBEAR
  • 2. The Essential Guide toChoosing a Code Profiling Tool ContentsHow to Choose a Code Profiling Tool........................................ 4Why Should You Own a Profiling Tool?..................................... 4Life Without a Profiling Tool....................................................... 5Profiler Use Challenges............................................................. 6 Low Impact, Integrated Profiling Tool................................................................. 6 Minimal Impact Profiling..................................................................................... 6 Ease of Use....................................................................................................... 7 Multiple Measurements...................................................................................... 7 Detailed Reporting............................................................................................. 7AQtime: SmartBear’s Profiling Optimization Solution................ 8 Minimal Intrusiveness........................................................................................ 8 Easy to Use Interface........................................................................................ 8 Easy to Understand Reports............................................................................ 10 Support for a Multitude of Environments......................................................... 11 Support for a Wide Array of Languages........................................................... 11 Profiling Scripts ............................................................................................... 12 Profiling Java Applications............................................................................... 12 Profiling Silverlight Applications....................................................................... 12Fast ROI.................................................................................. 14Cost Effective.......................................................................... 15Learn More.............................................................................. 15 AQtime Pro 3 by SMARTBEAR
  • 3. How to Choose a Code Profiling ToolNo matter how talented your development team is, very few lines ofcode run at peak performance when they’re first written. Code mustbe analyzed, debugged, and reviewed to determine the most effectiveway to make it run faster. How can software developers and qualityengineers ensure that their code is quick, efficient and ultimately seenas valuable? The solution lies in using a profiling tool to examine anapplication’s code, and locate and eliminate performance bottlenecks.These tools can quickly diagnose how an application performs, and en-able programmers to zero in on areas of poor performance. The resultis a streamlined code base that performs at or exceeds customers’expectations.Why Should You Own a Profiling Tool?There are numerous reasons to invest in a profiling tool. Maybe youare part of a company who is employing (or looking to employ) an agilesoftware development process. One of agile development’s hallmarkcharacteristics is short development cycles, which usually range fromtwo to eight weeks in length.These short cycles leave little to no room for code refactoring or perfor-mance tweaks. Thus, programmers need to ensure code runs efficientlyfrom the outset of the project.You might also be trying to keep pace with your end users’ rapidlydiminishing attention spans. In 1999, users were patient enough to waitup to 8 seconds for a website to load. By 2006, the acceptable wait timehave decreased to 4 seconds. At that, more than one-third of onlineshoppers with a poor experience abandoned the site entirely, while 75%were likely not to shop on that site again. By 2012, more than half ofusers would abandon a site after waiting for more than 3 seconds. Nocompany can afford that kind of negative attention. AQtime Pro 4 by SMARTBEAR
  • 4. Life Without a Profiling ToolOptimizing code is challenging; it requires time, thought, and investiga-tion from developers. Without the proper tools, programmers have tofall back on slower, less efficient ways of trying to optimize their applica-tions. Some developers take to “pre-optimizing” code; they guess whereperformance problems will occur and refactor their code in an attemptto eliminate problems before they appear. This approach is problematicbecause a developer will often incorrectly diagnose the potential bottle-neck. She may look only at her own code, instead of the full code base,thus missing integration issues. She may not have insight into her targetusers’ expected behavior, or she may focus on an area of code that isinfrequently used.While well intended, this approach generally fails to find any true perfor-mance bottlenecks. Without a profiling tool to help locate bottlenecks,blind optimization only wastestime, as shown in the graphicabove.Simply choosing to not opti-mize code is a bad idea aswell. No end user will want tomake a slow application part oftheir daily life. If they becomefrustrated enough, they’ll startlooking for an alternative appli-cation. Disgruntled users often Figure 1: Blind optimization is a timevoice their opinions on blogs wasterand other message boards,steering potential clients away from one company’s products to another.That kind of damage to a company’s reputation can be irreparable, andcan cost the company countless dollars in lost revenue. AQtime Pro 5 by SMARTBEAR
  • 5. Profiler Use ChallengesDespite clear benefits, programmers have been slow to adopt profilingtools. They complain that traditional profilers are invasive and difficultto use. In some cases, programmers have found that certain profilersadded so much overhead to application execution that performancedata was skewed. Those profilers actually contributed to the probleminstead of solving it.Low Impact, Integrated Profiling ToolRecently, a new generation of profiling tools have begun to emerge.This latest generation of profilers is not subject to many of the limitationsof their predecessors, and truly does speed up the optimization process.The ideal profiling tool integrates smoothly into your developmentprocess and allows precise and accurate measurements of your code’sperformance.Minimal Impact ProfilingIt’s important to select a profiler which is as non-invasive as possible.Some profiling tools are highly invasive to an application’s code; theymay actually require the code be modified so that the profiler can takeaccurate measurements. Because this could result in hundreds orthousands of changes in the code, it has to be done by an automatedsource-modification tool. Once this takes place, a developer no longerhas control over her code. When that happens, many people tend toquestion if the profiling tool itself may be injecting problems into the ap-plication.The profiler you choose should not require any changes in sourcecode, and should not introduce so much overhead that the applicationresponse time is impacted. AQtime Pro 6 by SMARTBEAR
  • 6. Ease of UseDevelopers should select a profiler that allows them to quickly andeasily diagnose performance problems in their code. If a user needs acomplex set of commands to perform a simple action, he’s going to lookelsewhere to see if an easier solution exists. Additionally, because of theincreased demand to create high performance applications in less time,developers don’t have time to configure overly complicated tools.A profiler is meant to be something that speeds up the software lifecy-cle, not bog it down further. Such a tool should have a minimal learningcurve, allowing developers to begin using it immediately.Multiple MeasurementsAn ideal profiler would allow a developer to profile his code in severaldifferent ways. Having such a versatile profiling tool ensures that a de-veloper can be certain his code performs well with regard to a number offactors; such as memory allocation, operating system resource usage,and overall application performance. It’s also essential that switchingbetween these various measurements be fast, easy, and intuitive, toensure developers have ample time to run them.Detailed ReportingAll the information generated by a profiler is worthless unless it can re-port that information in a detailed, easy-to-understand fashion. Whetherthe profiler outputs HTML pages or Microsoft Word documents, the dataneeds to be easy to interpret. What’s more, the reporting system needsto be robust, providing all the information a developer needs, yet stillbe flexible enough so that the data can be filtered to show only what’srelevant. AQtime Pro 7 by SMARTBEAR
  • 7. AQtime: SmartBear’s Profiling Optimization SolutionAQtime is SmartBear’s award-winning performance profiling and mem-ory and resource debugging toolset for Microsoft, Java, Embacadero,Borland, Intel, Compaq and GNU compilers.AQtime includes dozens of productivity tools that help users easilyisolate and eliminate performance, memory and resource issues withintheir code.AQtime is built with one key objective - to help users completely under-stand how their programs perform during execution. Using its integratedset of performance and debugging profilers, AQtime collects crucialperformance and memory/resource allocation information at runtime. Itthen delivers its profilers’ results both in summarized and detailed forms.In short, AQtime provides you with all of the tools you need to begin theoptimization process, and provides the following advantages:Minimal IntrusivenessAQtime never modifies source code. In fact, it always uses the leastintrusive method to achieve the requested results. Since one normallyexpects results to refer to functions or sections of code, most AQtimeprofilers require only that the application be compiled with debuggerinformation, so that code points can be linked to function or unit names.Easy to Use InterfaceDevelopers don’t need to learn complex shell commands or proprietaryprogramming languages to profile code with AQtime. It sports an intui-tive interface that was designed with the busy programmer in mind. Withjust a few clicks, a developer can isolate performance or resource is-sues in a fraction of the time that other tools take. What’s more, AQtimecan function stand-alone or integrate directly into Microsoft Visual Studioor Embarcadero RAD Studio (and earlier versions of RAD Studio byCodeGear and Borland). This feature provides you with the full AQtimefunctionality without leaving your IDE of choice. You can create and AQtime Pro 8 by SMARTBEAR
  • 8. manage AQtime projects, profile your applications, and view profilingresults directly from the IDE.AQtime extends the Visual Studio and RAD Studio IDEs in the followingways:¿¿ Context Sensitive Profiling. Right click in the Visual Studio or RAD Studio editor and select “Profile this method” or “Profile this class” to start a new profiling session. It’s easy and natural.¿¿ Inline AQtime Panels. All AQtime panels - Setup, Report, Summary, Call Graph, Assistant, and others - become true Visual Studio and RAD Studio panels.¿¿ Add a New AQtime Project Type. You can create AQtime projects or add them to an existing Visual Studio/RAD Studio solution the same way that you create or add other projects; by using the Create Project and Add New Project dialogs of Visual Studio, or the New Items dialog of RAD Studio.¿¿ AQtime Menu and Toolbar Integration. AQtime adds the Profile menu to the IDE’s main menu. This menu contains commands that let you start, pause and resume profiling, as well as select the profiling mode, modify the profiler and panel options, etc. In Visual Studio, project-specific commands, such as Add Module, Add Output or Add Assembly, are added to the Project menu, and are also available through the context menu of AQtime’s project node in the Solution Explorer. In RAD Studio, a Run with Profiling command is added to the Run menu. AQtime also adds the AQtime toolbar to both IDEs. This toolbar contains the most frequently used items, such as Run, Select Profiler, etc.¿¿ Contributing to the Visual Studio Automation Model. The automation model of Visual Studio provides users with the ability to create custom add-ins, wizards, and work with macros. As a AQtime Pro 9 by SMARTBEAR
  • 9. true Visual Studio-integrated product, AQtime provides program interfaces for its internals (for example, for the Projects interface). This allows third-party developers to create Visual Studio add-ins, wizards and macros that use AQtime’s object model.¿¿ Fully Integrated Into IDE Help System. The AQtime help system is fully integrated into the both the Visual Studio and RAD Studio help systems. F1 context-sensitive Help is provided for all AQtime panels, dialogs and project items. Figure 2: AQtime menus inte- grated into Visual Studio Figure 3: AQtime menus inte- grated into RAD StudioEasy to Understand ReportsOnce a profiling session is complete, AQtime displays a summary reportof its findings (see next page). This summary clearly pinpoints the sec-tions of code that need to be optimized, allowing developers to quicklyzero in on pain points in their code. The information shown is specific tothe profiler that was run, so only relevant data is displayed. A more in-depth report is also available, allowing users to view detailed informationfor individual methods. Once generated, these reports can be stored asXML, HTML or TXT. AQtime Pro 10 by SMARTBEAR
  • 10. Figure 4: A sample report generated by AQtimeSupport for a Multitude of EnvironmentsAQtime supports a wide range of 32 and 64-bit chipsets from both AMDand Intel. The supported operating systems are:¿¿ Microsoft Windows 8 (either 32-, or 64-bit edition) ¿¿ Microsoft Windows Server 2012¿¿ Microsoft Windows 7 (either 32-, or 64-bit edition)¿¿ Microsoft Windows Server 2008 (either 32-, or 64-bit edition)¿¿ Microsoft Windows Vista (either 32-, or 64-bit edition)¿¿ Microsoft Windows Server 2003 (either 32-, or 64-bit edition)¿¿ Microsoft Windows XP (either 32-, or 64-bit edition)The supported .NET Frameworks are: 1.0, 1.1, 2.0, 3.0, 3.5, 4.0 and4.5. See full list of System Requirements. AQtime Pro 11 by SMARTBEAR
  • 11. Support for a Wide Array of LanguagesAQtime can profile code written in a wide variety of languages, includ-ing:¿¿ Microsoft Visual C# ¿¿ Embarcadero RAD Studio¿¿ Microsoft Visual Basic ¿¿ Borland Delphi and¿¿ GNU Compiler Collection C++Builder¿¿ Microsoft Visual J# ¿¿ Borland C#Builder¿¿ Intel C++ ¿¿ Compaq Visual Fortran ¿¿ OthersFor full list of supported compilers and versions, see Supported Devel-opment Tools in AQtime documentation.Profiling ScriptsAQtime Pro profiles VBScript and JScript functions that are executed bythe Microsoft Scripting Engine. This engine is used by a considerablenumber of applications, including Internet Explorer, Windows Script Hostand TestComplete. Therefore, you can use AQtime Pro to profile scriptsfrom web pages, standalone scripts, TestComplete scripts and manymore.Profiling Java ApplicationsWith AQtime Pro, you can profile standalone 32- and 64-bit Java ap-plications – .class files, .jar archives and mixed code – created for thefollowing platforms:¿¿ Sun Java 2 Platform, Standard Edition 5.0 (J2SE 5.0)¿¿ Sun Java Platform, Standard Edition 6 (Java SE 6) AQtime Pro 12 by SMARTBEAR
  • 12. Profiling Silverlight ApplicationsAQtime supports profiling of Rich Internet Applications (RIA) createdwith Silverlight 4. You can profile in-browser Silverlight applicationsrunning on a local computer or hosted on the Web, as well as out-of-browser applications running on a local machine.AQtime does not require any modification of existing Silverlight applica-tion code.A Variety of MetricsAQtime boasts fourteen different profiler mechanisms which can beconfigured in several different ways. The end result is a flexible solutionthat allows users to easily ascertain those areas of most concern. Thefollowing profiler mechanisms are supported:¿¿ Performance Profiler - Helps find poor performing functions and aids in their debugging. It monitors all of the method calls in an application, counts the calls, and traces the call hierarchy on a thread-by-thread basis.¿¿ Allocation Profiler - Helps you determine if an application is releasing memory properly. It does this by tracing the memory use in 32-bit and 64-bit applications during runtime.¿¿ Resource Profiler - Monitors the application’s execution and checks whether the application creates Windows resources correctly and releases all of the allocated resources. The profiler also tracks errors that occur when calling Windows API functions that deal with resources.¿¿ Reference Count Profiler - Tracks the number of references to COM objects that implement one or several interfaces. The profiler traces the creation and deletion of references and allows you to pinpoint unreleased references or those that were released prematurely. AQtime Pro 13 by SMARTBEAR
  • 13. ¿¿ Coverage Profiler - Lets you know how much of your code is actually being executed and tested. It determines whether a routine or a line was executed during the profiler run and how any times it was executed.¿¿ Failure Emulator - This profiler tracks one thing: whether your application’s code contains lines that prevent the application from an unexpected failure. For example, you may check whether the application that has the .txt file as an input parameter behaves correctly when you try to open a file you do not have permissions to open. If the code contains needed lines, the application will not fail. Otherwise, the conditions for the application failure are met and you may see how your application behaves in an unexpected situation.¿¿ Static Analysis Profiler - Exposes routines that may not be written for optimal performance by analyzing debugging information or metadata. In doing this, a wealth of information is exposed, such as the number of loops in a routine, the size of the routines in bytes, all the possible code branches in an application, and more.¿¿ Exception Trace Profiler - Lets you confirm that the appropriate error messages are displayed for given circumstances. It monitors the application execution and (if applicable) outputs exception trace information.¿¿ Function Trace Profiler - Shows what code is called and when, allowing you to make sure the most efficient code path is being followed. It investigates the route and the order in which the routines are called during the application runtime.¿¿ Load Library Tracer Profiler - Loading and unloading dlls multiple times can significantly slow down an application. This profiler determines what dynamic link libraries were loaded and unloaded by the profiled application and how many times they were loaded and unloaded.¿¿ Platform Compliance Profiler - Lets you determine whether the profiled application can work on a specific operating system. AQtime Pro 14 by SMARTBEAR
  • 14. ¿¿ Sequence Diagram Link Profiler - Generates a graphical map of how function calls are made, allowing for faster debugging of code. It analyzes the sequence of function calls in your application and then builds a UML-style diagram of function calls. This enables tracing links between methods and functions without running the application.Fast ROIUnlike some tools, which have a steep learning curve and require exten-sive training, AQtime can be put to work immediately. Many users saythat they were able to isolate and correct performance problems withinminutes of running AQtime. Thanks to an intuitive interface and easy tounderstand reports, the optimization process can immediately changefrom painful to painless. There’s no lengthy ramp-up time, no clunkyconfiguration steps to follow, just a clean UI and a series of simplesteps to ensure peace of mind for a development team’s performanceconcerns.Cost EffectiveAQtime’s pricing model is incredibly cost effective. Some other ven-dors charge up to five times more for products with fewer features thanAQtime. This means an entire team of programmers can be outfittedwith AQtime for the same price as one license for a competitor’s prod-uct. No other profiling application can claim so much functionality forsuch a small price tag.Learn MoreTo take the first step toward a smoother optimization process, downloada free trial version of AQtime. AQtime Pro 15 by SMARTBEAR
  • 15. About SmartBear SoftwareMore than one million developers, testers and operations profession-als use SmartBear tools to ensure the quality and performance of theirAPIs, desktop, mobile, Web and cloud-based applications. SmartBearproducts are easy to use and deploy, are affordable and available fortrial at the website. Learn more about the company’s award-winningtools or join the active user community at http://www.smartbear.com, onFacebook or follow us on Twitter @smartbear and Google+.SmartBear Software, Inc. 100 Cummings Center, Suite 234N Beverly, MA 01915+1 978.236.7900 www.smartbear.com©2012 by SmartBear Software, Inc. Specifications subject to change. SB-AQt-030513-WEB

×