9,538 reputation
12042
bio website en.wikipedia.org/wiki/…
location United States
age 70
visits member for 4 years, 3 months
seen yesterday

BS Mechanical Engr.
PhD CS(AI)
CS Prof (4yr)
Numerous consulting jobs.
15 yr at http://www.pharsight.com
Published book on CS & several articles
4 kids, 2 grand
Pilot(student)

P.S. The picture is a Beta-prime distribution. It shows the program speedup factors you can get if you see a problem twice in 2, 3, 4, and 5 samples.


May
13
comment Does profiling without benchmarking lead to micro-optimization?
@nsfyn55: You're quite right. One case where it did not point to the problem was in a manufacturing simulation where there was an asynchronous protocol between processes, and delays were caused by fast actions being prioritized behind slow ones like DB update. For that, I used a laborious logging method, which worked.
Apr
26
comment Is there a performance difference between ++x over x++?
You've heard of the streetlight effect? You're not alone in falling for it. There are so many questions like this on SO, where people wonder if language feature X is faster than Y, when real performance issues are totally elsewhere. For one thing, you can only find them after you're written and run a program and (dare I say it) -profiled- it.
Apr
22
comment True/false on the left or the right?
@Parham: Ditto. It's a case of the streetlight effect.
Apr
3
comment Trying to “combine” similar objects without doing a bazillion comparisons
Not being primarily a database person, I'm trying to understand the question. In something vaguely similar that I did ages ago, there was one database that described the structure of another database. Then, since the first one changed at low frequency, there was benefit in precompiling it.
Mar
24
comment Reason for (post/pre) increment operator in Java or C#
@Doval: I even built a language I called D, like C but with OO and parallelism features. It went nowhere (mercifully) and has no relation to the D you are talking about. I drive people crazy in C?? by always writing break; case ... ;-)
Feb
25
comment How to identify performance bottlenecks in your software
Until you get more experience, don't expect to be able to figure out in advance where the performance problems are. Instead, get it running with a workload and find out where each problem is, and fix it. To find the problem(s), this is the method I rely on.
Jan
30
comment How do I traverse a tree without using recursion?
Come on @Mat, that's kid stuff. You may disagree, like if you are afraid of bombing out on a tree that's too deep, that's a reasonable concern. You can just say so.
Jan
30
comment How to convey your approach is faster than the built-in, alternative approaches?
+ @Joan: I find if you say "It used to take a minute, and now it takes less than a second", that gets the idea across.
Jan
28
comment C++ Performance vs. Java/C#
+ It isn't about "hot path" so much as "hot spot", because where jitting matters is where the program counter spends time. Bigger apps tend not to have hot spots because at most any random point in time they are in system or library routines that the jitter doesn't see. But of course, if they actually do have hot spots, as you say, those will be optimized.
Jan
22
comment How has an increase in the complexity of systems affected successive generations of programmers?
@david.pfx: Agreed. Macros could use a debugger of their own :)
Jan
21
comment How has an increase in the complexity of systems affected successive generations of programmers?
@david.pfx: When I worked in Lisp, macros were perfect for that. In C-like languages, I would first see if I could do it just using C macros (I hated that the Java-folks deprecated those), otherwise I write recursive-descent parsers. I've done so many now, it's almost sleepwalking.
Jan
17
comment How has an increase in the complexity of systems affected successive generations of programmers?
@PeterMortensen: I just emailed it to you (17mb). Remember, it's 20 years old.
Jan
16
comment How has an increase in the complexity of systems affected successive generations of programmers?
@MDMoore313: I scanned it, and could send you that. It's 17mb.
Jan
15
comment How has an increase in the complexity of systems affected successive generations of programmers?
@Jason: I plead ignorance of nimrod. What I look for in a DSL is if you write domain-specific programs in it, and a specific request or requirement comes along that's simple enough that you can either do it or not, then if you completely implement it, then you diff the source files before and after the implementation, the number of differences is small. (puff!)
Jan
14
comment How has an increase in the complexity of systems affected successive generations of programmers?
@Izkata and Peter: Yeah, I'm that oddball. FWIW, I put up a couple (extremely amateur) videos, in hopes of making it easier to understand. Random Pausing. Differential Execution. Cheers.
Jan
14
comment How has an increase in the complexity of systems affected successive generations of programmers?
@RobertHarvey: You're right, and my attempts to do that have not all been well received :)
Jan
14
comment How has an increase in the complexity of systems affected successive generations of programmers?
@PeterMortensen: Agreed. It's lonely. There's a word for that - Cassandra complex.
Nov
20
comment Jargon to describe unnecessary running of code?
@MichaelShaw: ... Now, 1 out of 2 interrupts show the problem, on average. It doesn't take many interrupts to see it. So you could call it a measurement, but it's a very poor measurement of the fraction of time. It's very precise evidence of what the problem is exactly. Does that help to explain the difference? That's just one example. Software is full of that kind of thing, if it's of any size.
Nov
20
comment Jargon to describe unnecessary running of code?
@MichaelShaw: Just to be specific, I've seen an app that takes about 60 seconds to start up. It happens to be spending about 50% of that time reading resources from dll files (which a CPU profiler will not see at all). Profilers that summarize function times will show many functions with high inclusive time. (Self time is useless.) Looking at that, you have no idea what the problem is. However, if you interrupt it a few times and each time understand the reason why (by reading the 20-level stack) you see it's doing it only for eye-candy on a splash screen. ...
Nov
20
comment Jargon to describe unnecessary running of code?
@DougM: The trouble with that is it leads people to think "I'm not a bad programmer, so I have no need to look for speedups." Speed problems are just like bugs - everybody makes them. The difference is - bugs say "FIX ME", while speed problems just lie there hoping you won't notice.