I have been doing some research to buy a laptop for software development. I have been told by one of my co-worker that having a processor over 2.2 GHz with 7200 RPM HDD makes no sesne. He said that since HDD is 7200 (fastest as of now in laptop), it won't make any difference if your processor is faster than 2.2 GHz.
Do you guys agree??? If not then why not??? I'm trying to get a fast laptop with light weight.
Thank a bunch in advance.
|
|
|||||||||||
|
migrated from stackoverflow.com Dec 7 '09 at 14:42
|
From one of Google's presentations: L1 Cache reference........................................... 0.5 ns Now, look how fast is your disk read to compare it with CPU operations? |
|||
|
|
|
You should buy a laptop with the fastest processor you can. It should also have a discrete graphics with it's own memory. Don't worry about the harddrive as you can easily buy replacements pretty much anywhere, newegg, frys, bestbuy, or whatever computer store is near you. SSD is quickly replacing normal hard drives in laptops and every year they are faster and more reliable. You mentioned using the laptop for development. Dev tools do a LOT of things that are not hard drive dependent. A faster processor will definitely be felt. Further, some dev tools, like Visual Studio for example, benefit from a discrete graphics card. Especially when that card has it's own memory and isn't stealing from the laptops normal ram. When I buy laptops, I get the fastest processor with discrete graphics. I order them with the least amount of memory and slowest hard drive possible. Then I buy replacement ram and a hard drive from somewhere like newegg. The reason is that laptop manufacturers are going to use the cheapest stuff they can get away with; further they charge an arm and a leg for those upgrades and it is ALWAYS cheaper to just pick up those parts elsewhere. |
|||
|
|
Whilst for many operations, disk I/O is the weakest link as far as speed is concerned, There are many activities you do on your machine that are not hard drive related - and the faster your CPU, the faster these tasks will complete. Anyway, That aside, you can always upgrade your hard drive to a SSD later where as upgrading your CPU is always much trickier and harder - and not usually financially worth it. |
|||||||||||
|
|
Your co-worker has no idea what he's talking about The majority of the applications you will ever run on your system make heavy use of files on disk. Basically, when you run a program, that program is loaded in memory. As long as that program is active it will be living and running in memory and the majority/if-not-all tasks the program undertakes will be in memory. Many running programs are optimized even further by using a cache (which is an even faster intermediate type of memory built directly into the processor). The exception to the rule are programs that read a file from disk (and buffer to memory). Think your file manager (ex windows explorer) and media applications like iTunes and VLC. A faster HDD will make these tasks faster:
Other than that a faster HDD will show little improvement in performance. If you want to increase performance, get a faster processor and more memory. A faster processor will allow your computer to accomplish tasks faster. More memory will allow you to run lots of large applications on your computer without the performance hit caused by the OS swapping out page files with the memory runs low. 4GB is enough memory for most general computer use. 2.2GHZ is enough for most computer use (Ie, software dev) but adding cores/processors will allow your computer to still have a 'snappy' feel even if one program is hogging processor time because that application can be isolated to a processor that the OS doesn't run on (your OS already optimizes multi-core/multi-processor task management so you don't even have to think about it). Multi-core/multi-processor perform better because they allow your computer to do multiple things at once. Before multi-core/multi-processor systems your computer could only really do one thing at once. To trick the user into believing that the system was doing multiple things at once it swaps processing between all of the programs extremely fast. How fast? Well, your screen redraws every other line 60 times a second, task switching happens much faster than that. The problem is, all that swapping between programs takes time (and hurts performance). Adding cores/processors cuts down on the task switching thereby increasing performance (except in older and poorly designed applications that are designed to only use one core). In short, your coworker has no clue what he's talking about. It would be a good idea to ignore any advice he has to offer about computers. If you're really interested in learning software development, you should become very familiar with all of these terms (what they mean, how they affect your program's performance, etc). For a pretty dense but extremely informative lecture series on these topics check this out. Knowing in detail how the processor, disk access, threading, virtual memory, how your operating handles task switching, etc, etc, etc, is essential to being a good programmer because these topics will affect every program you'll ever write. If you're learning web development, this stuff is still important but you'll have less control over it and it's probably a better idea to learn as much as you can about networking. |
|||
|
|