Magpie: Distributed Request Tracking for Realistic Performance Modelling

Total Page:16

File Type:pdf, Size:1020Kb

Magpie: Distributed Request Tracking for Realistic Performance Modelling Magpie: Distributed request tracking for realistic performance modelling Rebecca Isaacs Paul Barham Richard Mortier Dushyanth Narayanan Microsoft Research Cambridge James Bulpin University of Cambridge 12 November 2003 Performance in distributed systems l Faults in distributed systems are notoriously hard to diagnose l Performance problems are even more subtle to debug l Often transient or affect only a subset of requests / users l Frequently involve complex interactions between multiple machines l Aggregate statistics (e.g. utilization) may look perfectly normal 12 November 2003 Magpie Approach l Track individual requests end to end l Observe control flow (causality) l Monitor resource consumption: CPU, bandwidth, disk l Debug performance “in the small” l Build a probabilistic workload model from the aggregate requests l Cluster similar requests according to their observed behaviour l Debug performance “in the large” 12 November 2003 How do we use this information? l Performance debugging l Why did this request take much longer than that request? l Fault detection l Configuration and management l Performance prediction l Realistic workload models for capacity planning l Obtain automatically on a “live” system 12 November 2003 Magpie components l Instrumentation l System activity recorded to logs l Generic request parser l Extract individual requests from logs according to an event schema l Model construction l Behavioural clusters l Probabilistic state machine 12 November 2003 Outline l Introduction l What is a request? l Instrumentation l Request extraction l Modelling l Current status 12 November 2003 What is a request? l System activity which takes place in response to an action initiated by the application being traced l HTTP request l Database query l File open request l We describe a request as l The sequence of application components involved in its processing l The resource consumed at each stage l CPU, bandwidth, disk transfer size, (latency) 12 November 2003 A typical e-commerce site (1) Internet Storage SQL Servers Web Front Ends 12 November 2003 A typical e-commerce site (2) Web Server SQL Server IIS CLR Application Static Logic Stored ContentFilter procedures ASP.NET ADO.NET Data WinSock2 API WinSock2 API http.sys Kernel Kernel 12 November 2003 HTTP request: detailed view IIS worker thread picks up request ASP.NET thread blocks after from http.sys Sync WinSock send IIS worker thread RPC to database to SQL Server wakes up to write log ! WEB.eec - + + + - - - + - - - WEB.398 HTTP request Disk HTTP response packets packet ASP.NET worker TDS request and reply packets sent and sent back to client Net RX thread takes over received Net TX 10.051s 10.100s 10.155s Net TX Net RX Disk - - SQL thread - SQL.9c4 unblocks 10.051s 10.100s 10.155s KEY: Blocked IIS ASP.NET SQL Disk Other 12 November 2003 Why is request tracking hard? l Many components, multiple machines l Must track control flow across machines l No globally unique request ID l Components are developed independently l Multiple thread pools l Many threads participate in processing a request l Asynchronous communication l Must match send/recvs between threads/machines l Hand-rolled synchronization primitives l SQL server has user-mode scheduler 12 November 2003 Outline l Introduction l What is a request? l Instrumentation l Request extraction l Modelling l Current status 12 November 2003 Event Tracing for Windows l Low-overhead event mechanism l Events timestamped with cycle counter l Global ordering on events on a single machine l Can enable/disable sets of events at runtime l Using ETW in Magpie l Each instrumentation point posts an event l Events are logged to disk l Logs are post-processed to extract requests l Can also consume events in real time 12 November 2003 Instrumentation points l Existing ETW event providers l IIS, kernel l App-specific hooks l IIS, ASP.NET, SQL Server l Detours l Wrap dlls to trap Win32 and WinSock2 calls l WinPcap l Capture packets on the wire 12 November 2003 CPU usage from kernel events l The ETW kernel logger records every context switch l How do we know which cycles are used for which request? l We can attribute cycles to a request by l An application-specific event which occurs within a delimited sector of CPU time, or l The current context of execution, eg thread id 12 November 2003 Example: protocol processing in a DPC DPC pkt DPC Events: cswitch start recv end cswitch Request 1 time cycle count Request 2 cycle count 12 November 2003 Application and middleware events l Cover points where flow of control moves between components l Cover points where resources are multiplexed and demultiplexed l E.g. user-level scheduling primitives l Propagation of a global request id is not required! l Magpie used to do this but not any more 12 November 2003 Instrumenting a web service Web Server SQL Server IIS CLR Application Extended SPs Static Logic Stored ContentFilter procedures HTTPModule Wrappers ASP.NET ADO.NET ISAPI Filter CLR profiler Data Intercept Intercept WinSock2 API WinSock2 API http.sys Kernel Kernel Event Tracing for Windows Event Tracing for Windows Packet Packet capture capture 12 November 2003 Outline l Introduction l What is a request? l Instrumentation l Request extraction l Modelling l Current status 12 November 2003 Generic request extraction l No inbuilt assumptions about the system or the application l No common unique identifier l Schema specifies semantics of events l Easy to add new event types l Parser stitches events into requests based on event semantics 12 November 2003 Terminology l Namespace l Event parameter which references an entity in the system, eg thread id l Timeline l Instantiation of a namespace with a unique value, eg thread id = 0xa l Events bind or unbind requests to timelines l Bindings capture the semantics of each event for a particular request type 12 November 2003 Example: connecting eventsRecv returns Enter Recv DPC start DPC end TCP pkt cswitch cswitch Cpuid=0 Tid=0xa Tid=0xb Connid=0xd Request 1 12 November 2003 Request 2 End-to-end request extraction l An instance of the request parser runs on each machine in the distributed system l Online or offline mode l Offline post-processing connects request fragments from each node according to a globally unique namespace, e.g. packet IP identifier 12 November 2003 Outline l Introduction l What is a request? l Instrumentation l Request extraction l Modelling l Current status 12 November 2003 Clustering for workload generation l Target the Indy performance modelling tool l Calculates throughput, bottlenecks l Needs transaction mix, resource consumption l Previously: microbenchmark approach l Run 10000 of each “transaction type” (URL) l Divide aggregate resource usage by 10000 l Aim: provide realistic workload models l From real, mixed workloads l Derive transaction “types” automatically 12 November 2003 Single request: cartoon view l Partial ordering of events l Annotated with resource usage 1k 12k 5ms 6ms 3ms 24k 6ms 1ms 6ms read 1k 6k 2ms 192k 3ms read IIS CPU ASP.NET CPU SQL Server CPU Network Disk 12 November 2003 Behavioural clustering of requests l Represent requests as event strings l “Flatten” out any concurrency l Use Levenshtein string edit distance l Modified to factor in resource usage vectors l Cluster requests based on this distance l Linear-time algorithm l Each cluster is a request “type” l Select representative from near centroid 12 November 2003 Build a workload model by clustering similar requests 1k 30k 2ms 10ms 5ms 14ms 24ms 1ms 5ms 0.2k 0.2k 0.2k 0.1k 6k 2k A 5ms 11ms 5ms Requests in the same 7% 1k cluster often have 11k 14ms 27ms 2ms 1ms 2ms 7ms different URLs, and B 10% one URL may appear A 1k B 12k 5ms 6ms 3ms 24k 6ms 1ms 6ms in many clusters read 1k C 6k 2ms 192k 3ms C read E 15% D 1k 11k 2ms 13ms 11ms 3ms 2ms 5ms 0.3k D 0.3k 5% 5ms 0.6k 1k E 5ms 11ms 12 November 2003 63% Taking it further: work-in- progress l Online and incremental modelling: l Detect component failure l Detect sudden shifts in workload l More sophisticated models l Learn the probabilistic state machine for each request l c.f. flowcharts annotated with performance information l “Bayesian watchdogs” l Compute the likelihood of a request’s behaviour as it moves through the system l Deal with “unlikely” requests appropriately 12 November 2003 Outline l Introduction l What is a request? l Instrumentation l Request extraction l Modelling l Current status 12 November 2003 Current status l Recent focus has been developing a generic request extraction scheme l Prototype for 2-machine e-commerce site l TPC-W style workload l Prototype for single machine SQL Server 2000 l Challenge is user mode scheduler l TPC-C workload l Other applications on the way l Large-scale l “Real” systems with “real” performance problems 12 November 2003 Conclusion l Magpie is a tool for performance analysis in a distributed system l Bottom up, per-request approach l Complementary to existing techniques: l Performance counters l Program profiling l Feeds into performance debugging and prediction tools 12 November 2003 Work-in-progress: learning the probabilistic state machine l Infer a stochastic context free grammar from a sample set of strings l Each state transition emits a character and has an associated probability l Use the Alergia algorithm (Carrasco & Oncina ‘94) l Construct a prefix tree from the sample set l Merge similar subtrees l Apply to Magpie requests l “Just” event strings… 12 November 2003 Ongoing work with Alergia l Tuning the similarity criterion l Factoring in resource usage information l Can we identify event sequences with suspiciously low probability l Run online for anomaly detection? 12 November 2003.
Recommended publications
  • A Programmer's Guide to C
    Download from Wow! eBook <www.wowebook.com> For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. Contents at a Glance Preface ����������������������������������������������������������������������������������������������������������������������� xxv About the Author ����������������������������������������������������������������������������������������������������� xxvii About the Technical Reviewer ����������������������������������������������������������������������������������� xxix Acknowledgments ����������������������������������������������������������������������������������������������������� xxxi Introduction ������������������������������������������������������������������������������������������������������������� xxxiii ■■Chapter 1: C# and the .NET Runtime and Libraries �����������������������������������������������������1 ■■Chapter 2: C# QuickStart and Developing in C# ����������������������������������������������������������3 ■■Chapter 3: Classes 101 ����������������������������������������������������������������������������������������������11 ■■Chapter 4: Base Classes and Inheritance ������������������������������������������������������������������19 ■■Chapter 5: Exception Handling ����������������������������������������������������������������������������������33 ■■Chapter 6: Member Accessibility and Overloading ���������������������������������������������������47 ■■Chapter 7: Other Class Details �����������������������������������������������������������������������������������57
    [Show full text]
  • Solid Code Ebook
    PUBLISHED BY Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 2009 by Donis Marshall and John Bruno All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Library of Congress Control Number: 2008940526 Printed and bound in the United States of America. 1 2 3 4 5 6 7 8 9 QWT 4 3 2 1 0 9 Distributed in Canada by H.B. Fenn and Company Ltd. A CIP catalogue record for this book is available from the British Library. Microsoft Press books are available through booksellers and distributors worldwide. For further infor mation about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments to [email protected]. Microsoft, Microsoft Press, Active Desktop, Active Directory, Internet Explorer, SQL Server, Win32, Windows, Windows NT, Windows PowerShell, Windows Server, and Windows Vista are either registered trademarks or trademarks of the Microsoft group of companies. Other product and company names mentioned herein may be the trademarks of their respective owners. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. This book expresses the author’s views and opinions. The information contained in this book is provided without any express, statutory, or implied warranties.
    [Show full text]
  • Adding Self-Healing Capabilities to the Common Language Runtime
    Adding Self-healing capabilities to the Common Language Runtime Rean Griffith Gail Kaiser Columbia University Columbia University [email protected] [email protected] Abstract systems can leverage to maintain high system availability is to perform repairs in a degraded mode of operation[23, 10]. Self-healing systems require that repair mechanisms are Conceptually, a self-managing system is composed of available to resolve problems that arise while the system ex- four (4) key capabilities [12]; Monitoring to collect data ecutes. Managed execution environments such as the Com- about its execution and operating environment, performing mon Language Runtime (CLR) and Java Virtual Machine Analysis over the data collected from monitoring, Planning (JVM) provide a number of application services (applica- an appropriate course of action and Executing the plan. tion isolation, security sandboxing, garbage collection and Each of the four functions participating in the Monitor- structured exception handling) which are geared primar- Analyze-Plan-Execute (MAPE) loop consumes and pro- ily at making managed applications more robust. How- duces knowledgewhich is integral to the correct functioning ever, none of these services directly enables applications of the system. Over its execution lifetime the system builds to perform repairs or consistency checks of their compo- and refines a knowledge-base of its behavior and environ- nents. From a design and implementation standpoint, the ment. Information in the knowledge-base could include preferred way to enable repair in a self-healing system is patterns of resource utilization and a “scorecard” tracking to use an externalized repair/adaptation architecture rather the success of applying specific repair actions to detected or than hardwiring adaptation logic inside the system where it predicted problems.
    [Show full text]
  • Visual Studio 2010 Tools for Sharepoint Development
    Visual Studio 2010 for SharePoint Open XML and Content Controls COLUMNS Toolbox Visual Studio 2010 Tools for User Interfaces, Podcasts, Object-Relational Mappings SharePoint Development and More Steve Fox page 44 Scott Mitchell page 9 CLR Inside Out Profi ling the .NET Garbage- Collected Heap Subramanian Ramaswamy & Vance Morrison page 13 Event Tracing Event Tracing for Windows Basic Instincts Collection and Array Initializers in Visual Basic 2010 Generating Documents from SharePoint Using Open XML Adrian Spotty Bowles page 20 Content Controls Data Points Eric White page 52 Data Validation with Silverlight 3 and the DataForm John Papa page 30 Cutting Edge Data Binding in ASP.NET AJAX 4.0 Dino Esposito page 36 Patterns in Practice Functional Programming Core Instrumentation Events in Windows 7, Part 2 for Everyday .NET Developers MSDN Magazine Dr. Insung Park & Alex Bendetov page 60 Jeremy Miller page 68 Service Station Building RESTful Clients THIS MONTH at msdn.microsoft.com/magazine: Jon Flanders page 76 CONTRACT-FIRST WEB SERVICES: Schema-Based Development Foundations with Windows Communication Foundation Routers in the Service Bus Christian Weyer & Buddihke de Silva Juval Lowy page 82 TEST RUN: Partial Anitrandom String Testing Concurrent Affairs James McCaffrey Four Ways to Use the Concurrency TEAM SYSTEM: Customizing Work Items Runtime in Your C++ Projects Rick Molloy page 90 OCTOBER Brian A. Randell USABILITY IN PRACTICE: Getting Inside Your Users’ Heads 2009 Charles B. Kreitzberg & Ambrose Little Vol 24 No 10 Vol OCTOBER 2009 VOL 24 NO 10 OCTOBER 2009 VOLUME 24 NUMBER 10 LUCINDA ROWLEY Director EDITORIAL: [email protected] HOWARD DIERKING Editor-in-Chief WEB SITE MICHAEL RICHTER Webmaster CONTRIBUTING EDITORS Don Box, Keith Brown, Dino Esposito, Juval Lowy, Dr.
    [Show full text]
  • Proceedings of Hotos IX: the 9Th Workshop on Hot Topics in Operating Systems
    USENIX Association Proceedings of HotOS IX: The 9th Workshop on Hot Topics in Operating Systems Lihue, Hawaii, USA May 18–21, 2003 THE ADVANCED COMPUTING SYSTEMS ASSOCIATION © 2003 by The USENIX Association All Rights Reserved For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email: [email protected] WWW: http://www.usenix.org Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. Magpie: online modelling and performance-aware systems Paul Barham, Rebecca Isaacs, Richard Mortier, and Dushyanth Narayanan Microsoft Research Ltd., Cambridge, UK. Abstract A B Understanding the performance of distributed systems requires correlation of thousands of interactions be- Event Tracing Event Tracing tween numerous components — a task best left to a com- puter. Today’s systems provide voluminous traces from each component but do not synthesise the data into con- cise models of system performance. Models Models Performance We argue that online performance modelling should be Queries Query Engine a ubiquitous operating system service and outline sev- The diagram shows how requests move through different soft- eral uses including performance debugging, capacity ware components across multiple machines in a distributed sys- tem. Magpie synthesizes event traces from each machine into planning, system tuning and anomaly detection. We de- models that can be queried programatically. scribe the Magpie modelling service which collates de- tailed traces from multiple machines in an e-commerce Figure 1.
    [Show full text]
  • CLR Profiling Apis Work Only for Managed Code
    Profiling Common Language Runtime Profiling This is preliminary documentation and subject to change Last updated: 2 July 2001 Page 2 Profiling Table of Contents 1 Profiling – Introduction ...........................................................................8 2 Goals for the Profiling APIs ......................................................................8 3 Non-goals for the Profiling APIs................................................................9 4 Profiling APIs – Overview ........................................................................9 5 Profiling APIs – Recurring Concepts ........................................................11 5.1 IDs................................................................................................11 5.2 Return Values .................................................................................12 5.3 Notification Thread ..........................................................................12 5.4 Nesting of Notifications ....................................................................12 5.5 GC-Safe Callouts.............................................................................13 5.6 How to profile a NT Service ..............................................................13 6 ICorProfilerCallback – Details.................................................................14 6.1 Runtime.........................................................................................14 6.1.1 Initialize....................................................................................14
    [Show full text]
  • A Hands-On Guide with Real-World Examples — Vaskaran Sarcar Foreword by Priya Shimanthoor
    Design Patterns in C# A Hands-on Guide with Real-World Examples — Vaskaran Sarcar Foreword by Priya Shimanthoor www.EBooksWorld.ir Design Patterns in C# A Hands-on Guide with Real-World Examples Vaskaran Sarcar Foreword by Priya Shimanthoor www.EBooksWorld.ir Design Patterns in C# Vaskaran Sarcar Whitefield, Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-3639-0 ISBN-13 (electronic): 978-1-4842-3640-6 https://doi.org/10.1007/978-1-4842-3640-6 Library of Congress Control Number: 2018946636 Copyright © 2018 by Vaskaran Sarcar This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the author nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made.
    [Show full text]
  • Smart Client Architecture and Design Guide
    Smart Client Architecture and Design Guide Foreword by Mark Boulter Smart Client Architecture and Design Guide patterns & practices David Hill, Microsoft Corporation Brenton Webster, Microsoft Corporation Edward A. Jezierski, Microsoft Corporation Srinath Vasireddy, Microsoft Corporation Mo Al-Sabt, Microsoft Corporation Blaine Wastell, Ascentium Corporation Jonathan Rasmusson, ThoughtWorks Paul Gale, ThoughtWorks Paul Slater, Wadeware LLC Information in this document, including URL and other Internet Web site references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. © 2004 Microsoft Corporation. All rights reserved. Microsoft, MS-DOS, Windows, Windows NT, Windows Server, Active Directory, BizTalk, InfoPath, MSDN, Outlook, Visual Basic, Visual C++, Visual C#, Visual Studio, and Win32 are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
    [Show full text]
  • Download File
    Columbia University Department of Computer Science Tech Report CUCS-015-05 Multi-Language Edit-and-Continue for the Masses Marc Eaddy Steven Feiner Department of Computer Science Columbia University New York, NY 10027 +1-212-939-7000 {eaddy,feiner}@cs.columbia.edu April 4, 2005 ABSTRACT We present an Edit-and-Continue implementation that allows regular source files to be treated like interactively updatable, compiled scripts, coupling the speed of compiled na- tive machine code, with the ability to make changes without restarting. Our implementa- tion is based on the Microsoft .NET Framework and allows applications written in any .NET language to be dynamically updatable. Our solution works with the standard ver- sion of the Microsoft Common Language Runtime, and does not require a custom com- piler or runtime. Because no application changes are needed, it is transparent to the appli- cation developer. The runtime overhead of our implementation is low enough to support updating real-time applications (e.g., interactive 3D graphics applications). Categories and Subject Descriptors D.3.3 [Software Engineering]: Programming Environments—Interactive environments; Testing and Debugging—Debugging aids; D.1 [Software]: Programming Techniques— Dynamic Software Updating; D.3.3 [Programming Languages]: Processors— Incremental compilers, dynamic compilers General Terms Experimentation, Languages, Performance Keywords dynamic software updating, online reconfiguration, patching, edit-and-continue, hot- swapping, rapid application development, .NET 1. INTRODUCTION Edit-and-Continue is a common debugging feature found in many integrated develop- ment environments (IDEs). It refers to the ability to pause an application, usually via a breakpoint, make changes to the source code that are recompiled in the background, and then continue execution with the modified application.
    [Show full text]
  • Session Title Session Sub Title (Optional)
    Pandurang Nayak Client Platform Evangelist Microsoft Corporation .NET Framework and Tools Roadmap 2006 .NET Framework 3.0 VS 2005 Extensions for .NET 3.0 (CTP) 2007 .NET Framework 3.5 Visual Studio 2008 Expression Blend 1.0 2008 .NET Framework 3.5 SP1 Visual Studio 2008 SP1 Expression Blend 2.0 .NET Framework Roadmap .NET Framework 3.5 SP1 WPF Enhancements Other Enhancements (ASP.NET, etc.) .NET Framework 3.5 WF & WCF WPF 3.5 LINQ Add-in Framework Enhancements .NET Framework 3.0 WPF WCF WF CardSpace .NET Framework 2.0 WinForms/ CLR Base Class Library ASP.NET WPF in a nutshell Rich Windows Applications Great Architecture + Great Graphics Rapid Prototyping 2D, 3D, Vector, Document Flow, Layouts, Composition, etc. WPF 3.5 Enhancements • .NET Framework • Interactive 2D on 3D • Cold Startup Client Profile • Pixel Shaders and Improvements • ~25MB client subset Effects Model • Several perf of .NET Framework • DirectX Interop enhancements • Customized install • New Controls • Profiling tools and experiences instrumentation Deployment Graphics Performance .NET Client Profile ~25MB Client-only Subset of .NET Fx Includes WinForms, WPF, LINQ, etc. Excludes ASP.NET, WCF, etc. 200KB fully customizable Bootstrapper .NET Framework Client Profile Using the Client Profile Deployment option in Visual Studio 2008 SP1 WPF 3.0 Graphics Recap Rich set of 2D drawing primitives Basic 3D functionality via Viewport3D Rich Media Integration Extensive Animation System Advanced Text Stack Bitmap Effects Imaging Compositor WPF 3.5 Graphics Enhancements True Interactive
    [Show full text]
  • Microsoft Mobile Development Handbook
    To learn more about this book, visit Microsoft Learning http://www.microsoft.com/MSPress/books/10294.aspx A05T623583.fm Page vii Tuesday, April 24, 2007 10:02 PM Table of Contents Foreword . xix Acknowledgments . xxi Introduction . xxiii Part I The Essentials of Mobile Application Development 1 .NET Compact Framework—a Platform on the Move. .3 Getting Started with Mobile Application Development in Visual Studio . 3 Choosing the Version of Visual Studio . 4 Other Development Software You Need . 5 Choosing Your Platform: Pocket PC, Smartphone, or Windows CE? . 7 The Difference Between Windows CE and Windows Mobile . 9 Choosing the .NET Compact Framework Version. 14 Understanding the Differences Between the .NET Framework 2.0 and .NET Compact Framework 2.0 . 20 Application Configuration Files. 23 ClickOnce . 24 Ngen.exe. 25 Remoting . 25 Serialization . 25 Printing . .25 Web Forms . 25 Understanding the Differences Between .NET Compact Framework Version 1.0 and Version 2.0 . 26 Windows Forms . 27 Display and Layout Management. 28 Data . .29 Communications . 30 What do you think of this book? We want to hear from you! Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey, please visit: www.microsoft.com/learning/booksurvey/ vii A05T623583.fm Page viii Tuesday, April 24, 2007 10:02 PM viii Table of Contents COM Interop . 30 Graphics Programming . 30 Security. 31 Threading . 31 Performance Monitoring . 31 Introducing .NET Compact Framework Version 3.5 . 31 Using Community Resources . 33 Microsoft patterns & practices Mobile Application Blocks. 34 OpenNETCF Smart Device Framework .
    [Show full text]
  • A Survey of Performance Analysis Tools
    A Survey of Performance Analysis Tools Patrick Wood, [email protected] Abstract In this paper, we present a survey of various tools that can be used to aid in performance analysis of computer software programs. We present and discuss different techniques in emerging performance analysis tools as well as provide examples of each type of method. For example, we will cover simple techniques such as timer routines with manual instrumentation to statistical profiling tools and more advanced dynamic instrumentation techniques, in which code can be monitored and changed on the fly. Additionally, a brief comparison of the tools will be presented with some tradeoff considerations. Keywords: Performance Analysis Tools, Profiler, Instrumentation, gprof, Pixie, CLR, ATOM, PIN, DynInst Table of Contents 1. Introduction 2. Brief History 3. Performance Analysis Objectives 4. Timers 5. Profiling Tools 5.1 gprof 5.2 SGI Pixie 5.3 CLR Profiler 5.4 Profiling Tools Summary 6. Instrumentation Methods 6.1 ATOM 6.2 PIN 6.3 DynInst 6.4 Instrumentation Methods Summary 7. Conclusion 8. Acronyms 9. References 1. Introduction Computer system and application performance is an essential and fundamental key in modern development. With increased complexity and requirements, applications are expected to perform greater computation in http://www.cse.wustl.edu/~jain/cse567-06/ftp/perf_tools/index.html 1 of 17 less time. Because of this increase in complexity, developers must turn to tools to aid in determining application or system bottlenecks. When using a performance tool, the workload under study is a real world application. Because of the real world workload under study, program tradeoffs in algorithm selection, data structure usage, and more can be evaluated through several runs of a tool.
    [Show full text]