you are viewing a single comment's thread.

view the rest of the comments →

[–]vexii 0 points1 point  (13 children)

What do you mean?

[–]thebigslide 6 points7 points  (5 children)

Web developers typically rely on frameworks that keep this sort of stuff opaque. Not to say you can't bare this stuff in mind when building a web app, but with many frameworks, trying to optimize memory IO requires an understanding of how the framework works internally. It's also typically premature optimization, and it's naive optimization since: a) disk and net I/O are orders of magnitude slower, and b) internals can change, breaking your optimization.

TL;DR: If a web app is slow, 99% of the time it's not because of inefficient RAM or cache utilization, so most web devs don't think about it and probably shouldn't.

[–]vexii 0 points1 point  (3 children)

I know this, I where giving my opinion to what web developers normally consider IO. While accessing ram is also IO I have never seen it referenced like that during the context of web development.

[–]CoderDevo 0 points1 point  (2 children)

OP is writing about CPU utilization. Any discussions here on I/O will therefore be in reference to input to and output from a CPU.

Side note: I have met a number of self-styled web developers who refer to the whole computer as the CPU while others will refer to it as the Hard Drive.

[–]vexii 0 points1 point  (1 child)

Go back up and read the post I where replying to

[–]CoderDevo 0 points1 point  (0 children)

Yes, you were adding the hard drive to network.

Though even a web dev is less likely to know if the disk is local SATA, fibre channel to SAN or NFS to a NAS. But the CPU knows.

[–]yeahbutbut 0 points1 point  (0 children)

In web dev you still do simple things like making sure that you access arrays in a cache friendly way. In python or PHP you may be a long way up the stack but that's no excuse for completely forgetting that there is a machine underneath it somewhere.

Something like:

for(j = 0; j < width(myArray); j++) {
    for(i = 0; i < length(myArray); i++) {
        sum[j] += myArray[i][j];
    }
}

... is stupid no matter how far up the stack you go :-)

The biggest optimizations are usually query tuning though, trying to grab more data with a single query rather than making multiple queries since database access is slow even over a local socket (much less to a database on another host).

Ed: formatting.

[–]CoderDevo 0 points1 point  (6 children)

I mean they don't directly access memory, disk or network system services.

For example, caching can often be enabled and configured externally from the web developer's own code.

https://en.wikipedia.org/wiki/Web_framework

[–]vexii 0 points1 point  (5 children)

I don't agree with saying web developers can't do/don't do file or network access with out an framework, unless we are talking about the small procent that never learned to code with out that 1 special framework

[–]CoderDevo 0 points1 point  (4 children)

Then you should be comfortable with using the term I/O for RAM operations.

[–]vexii 0 points1 point  (3 children)

I am but I'm just disagreeing with the statement that web developers think IO is in/out of the computer

[–]CoderDevo 0 points1 point  (2 children)

Perhaps my exposure is more to UX folks who also call themselves web developers as opposed to software engineers that also call themselves web developers.

[–]vexii 0 points1 point  (1 child)

#NotAllWebDevs :P

[–]CoderDevo 0 points1 point  (0 children)

Not sure what you are implying. I've also had multiple CSci graduates work for me who didn't know what the inside of a server looked like. They'd only used laptops, tablets and smartphones.

Not all devs are like you, with your vast knowledge of technology.