Reading Notebook: 13-Jan-09
Comments in italics are mine and express my own views, thoughts and opinions
Developer’s Guide to Debugging by M. Wloka, et al.:
Strategy of memory profiling (p. 45) - good summary of a general approach broken down in several steps.
The need to have an estimated and / or expected memory usage value (p. 45) - customers always ask me the question whether the certain amount of VM consuption is normal
Phases of execution and measurements at phase boundaries (p. 47)
Memory growth as a function of input data (linear, logarithmic, quadratic, …, exponential) (p. 48)
Stop points (pp. 48 - 49) - I also recommend to dump process memory to a memory dump file at regular intervals.
top tool from Cygwin (p. 49)
Using Task Manager (pp. 50 - 51) - Actually there are several memory columns for processes and it is important to choose the most appropriate. For example, Commit Size also includes memory allocated in page file as well. The following picture shows various columns in Vista:

Deallocation not releasing memory to OS (pp. 51 - 52) - On Windows it might not decrease the size of VM but might decrease the size of committed memory and reduce page file usage. I need to test this: writing this down in my hardback Idea: Blogger’s notebook. Also on Windows there can be several separate process heaps with their own lifetime semantics.
Memory profilers: Massif, AQtime and mpatrol (pp. 53 - 54) - On Windows you can use Gflags and select user mode stack trace database and then use WinDbg: http://www.dumpanalysis.org/blog/index.php/2007/08/06/crash-dump-analysis-patterns-part-20a/
Concurrent Programming on Windows by J. Duffy:
Association of a critical region with static lexical scope (p. 43)
Orphaned lock (p. 45) - I have seen it many times. Looks like good candidate to be included in my crash dump analysis patterns.
Coarse- vs. fine-grained locks, false sharing (pp. 46 - 47)
CAS instructions (compare and swap) (p. 48)
Strict alternation algorithm - critical region implementation (pp. 49 - 50)
Dekker’s and Dijkstra’s algorithm - critical region implementation (pp. 50 - 53)
Out-of-order execution breaks DD’s algorithm (p. 53)
Software Factories by J. Greenfield, et. al.:
Problem: small market for vertical focus and domain knowledge concentration in end-user organizations (p. xviii)
Ideal product built by an individual is an exception (pp. xviii - xix) - I think this depends on the project size an complexity.
Tools help with mechanistic tasks (p. xix)
Generative Programming book (p. xxiii) - I need to finish reading it, I started 5 years ago…
Tools automate and help to focus on creativity (p. xxvii) - T&D tools help in focusing on creative part of T&D
Architecturally driven and contextually aware tools for specific domains (p. xxix)
Software Engineering Foundations: A Software Science Perspective, by Y. Wang:
I bought this book last year and started reading now to get the most possible broad overview of software and related disciplines.
Historical programming-language-centered approach to SE (p. xxxvi) - I propose a memory-centered approach in my forthcoming books about Memoretics and Memiotics including a foundational philosophy called Memoidealism where Software is an emergent and predictable artifact.
Architecture of the book (p. xxxix) - concept and example of a book architecture (especially for a foundational book where SE can be templetized to a different discipline)
Broad multidisciplinary foundations of software rather than just computer science (p. xlix)
The author plans to apply metaphors from other disciplines - very much like I started to do with philosophy and physics. I also coined the term metaphorical bijection to describe two-way application of metaphors, for example, from physics to software and from software to physics.
- Dmitry Vostokov @ SoftwareGeneralist.com -
_1125.png)
Coming Soon:
Debugging Notebook: Essential Concepts, WinDbg Commands and Tools
Crash Dump Analysis for System Administrators and Support Engineers
New Magazines:
Debugged! MZ/PE: MagaZine for/from Practicing Engineers
New Books:
Memory Dump Analysis Anthology, Volume 3
First Fault Software Problem Solving: A Guide for Engineers, Managers and Users
x64 Windows Debugging: Practical Foundations
Also available:
Windows Debugging: Practical Foundations
DLL List Landscape: The Art from Computer Memory Space
Dumps, Bugs and Debugging Forensics: The Adventures of Dr. Debugalov
WinDbg: A Reference Poster and Learning Cards
Memory Dump Analysis Anthology, Volume 2
Memory Dump Analysis Anthology, Volume 1
New Children's Book: