Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
While this many not seem like a programming question directly, it impacts my development activities and so it seems like it belongs here.
It seems that more and more developers are turning to virtual environments for development activities on their computers, SharePoint development being a prime example. Also, as a trainer, I have virtual training environments for all of the classes that I teach.
I recently purchased a new Dell E6510 to travel around with. It has the i7 620M (Dual core, HyperThreaded cpu running at 2.66GHz) and 8 GB of memory. Reading the spec sheet, it sounded like it would be a great laptop to carry around and run virtual machines on.
Getting the laptop though, I've been pretty disappointed with the user experience of developing in a virtual machine. Giving the Virtual Machine 4 GB of memory, it was slow and I could type complete sentences and watch the VM "catchup".
My company has training laptops that we provide for our classes. They are Dell Precision M6400 Intel Core 2 Duo P8700 running at 2.54Ghz with 8 GB of memory and the experience on these laptops is night and day compared to the E6510. They are crisp and you are barely aware that you are running in a virtual environment.
Since the E6510 should be faster in all categories than the M6400, I couldn't understand why the new laptop was slower, so I did a component by component comparison and the only place where the E6510 is less performant than the M6400 is the graphics department. The M6400 is running a nVidia FX 2700m GPU and the E6510 is running a nVidia 3100M GPU. Looking at benchmarks of the two GPUs suggest that the FX 2700M is twice as fast as the 3100M.
http://www.notebookcheck.net/Mobile-Graphics-Cards-Benchmark-List.844.0.html
3100M = 111th (E6510)
FX 2700m = 47th (Precision M6400)
Radeon HD 5870 = 8th (Alienware)
The host OS is Windows 7 64bit as is the guest OS, running in Virtual Box 3.1.8 with Guest Additions installed on the guest. The IDE being used in the virtual environment is VS 2010 Premium.
So after that long setup, my question is:
Is the GPU significantly impacting the virtual machine's performance or
are there other factors that I'm not
looking at that I can use to boost the
vm's performance? Do we now have to
consider GPU performance when
purchasing laptops where we expect to
use virtualized development
environments?
Thanks in advance.
Cheers,
Dave
EDIT:
The HDDs in the two systems are 7200 RPM, the E6510 having 500GB vs. the M6400 have 2x 250GB in a non-RAID configuration.
Also, when I turn off some of the graphics features of Windows 7 (host and guest) by going to non-Aero themes, VM performance visibly increases.
Just to closer off this question with my findings, what we have discovered was that driver performance was limiting the perceived performance of that virtual machine. With the default Dell drivers, which are built for "stabilty" the virtual machines would be visibly impacted in "visual" applications like IDEs (Visual Studio 2010) such that VS 2010 could not keep up with my typing. When we had some nVidia reference drivers installed, the IDEs were crisp and you couldn't really tell that you were in a VM anymore, which was my experience with the M6400s.
Thanks to everyone who threw out some ideas on the subject.
I am running two VMs on my development system simultaneously, one for development, and one for TeamCity. My graphics card on my Dell Optiplex is an ATI 2450, which is, quite honestly, complete crap. Personally, I have found RAM and CPU to make the most significant impact on my desktop. But since you are on a laptop, have you thought about the disk? Our M6400 has an SSD, and perhaps that is the biggest difference for your two laptops. I would not expect GPU to affect anything, unless of course you are trying to use the experimental Direct3D features in VirtualBox.
You guys are looking in the wrong places. Go to bios look for virturalization extensions AMD-v or VT-X. Off by default on most system. if it dosent have that option take a look at Sun Virtual box runs good on my older laptop with out virt support.
A GPU can significantly impact performance of any system. Visual Studio, for example, has a huge performance difference between on board video vs dedicated graphics.
That said, I would expect there are other differences. First, how do the two hard drives compare? notebook manufacturers love putting slow disks in machines in order to beef up their battery longevity numbers; and other the other side, sometimes they put in the faster drives to boost performance numbers. It really depends on what the new machine was marketed towards. Along these lines some hard drives also have configuration settings to determine their power / performance / noise levels. Depending on the drive you might be able to tweak this.
Another expected difference is the quality of memory. Nearly every dell I've used has had second or third tier ram installed. Sure they might both be DDR3 of a certain Ghz, but the quality of the chips is going to determine how they really perform. Sometimes by 200% of more.
Beyond those you start getting into chipset differences, mainly in the hard drive controllers. You can't do anything about this though.
The next thing I can think of is drivers. Make sure your up to date on everything you can. Also, test both Dell and nvidia supplied drivers. Sometimes nvidia has better drivers, sometimes the original ones from dell are better. That part is a crap shoot.
And, finally, consider blowing away the new machine and doing a complete reinstall from the bare metal up. Before installing any anti-virus or CPU sucking software, test your VM performace.
Related
I didn't want to ask this question here. I asked it on superuser but didn't get an answer.
https://superuser.com/questions/1420073/why-did-formatting-win-7-computers-to-windows-10-double-their-cpu-z-bench-score
So I work at a company as an IT guy while I am doing my computer engineering degree. Doing hardware and software maintenance of computers is part of my job. I have had a weird experience with two of the computers. These two computers(one desktop one laptop) were the slowest computers in the company. The laptop is Dell Inspiron N5010 with i3 370M(2 cores, 4 threads) processor. The desktop is HP 500B MT with E5800(2 cores 2 threads) processor.
At first, both of these computers had windows 7 running on them. CPU-Z(1.87.0) benchmark of the desktop was 113(single thread), 227(multithread). The laptop was 82, 267.
After I formatted these computers with windows 10 and ran the same CPU-Z version benchmark, I got exactly double performance with both computers. Both single threading and multithreading scores got doubled.
After formatting with windows 10, desktop got 270, 510. Laptop got 180, 520.
What is causing this? Physical core number stayed the same. Logical core number stayed the same. I am baffled.
Is it possible that you upgraded from 32 bit Windows 7 to 64 bit Windows 10?
According to this FAQ under the point What algorithm does the benchmark use... they state that
the 32-bit version keeps using the legacy x87 instructions, resulting
in almost half of the x64 performance
edit: please remove question here because it is not about code. I answered on superuser as well
If the difference in speed is noticeable, it might have been an issue with the drivers on WIndows 7, or it might have had something to do with huge pages (enabling huge pages could boost the CPU performance significantly).
If you can't notice the difference in speed/responsiveness, it might just be a bug in CPU-Z (Have you tried the newest version 1.88?).
Going from Windows7 to Windows10 should not on its own result in such drastic changes in performance, the CPU benchmarks should be pretty close. Windows versions are also important, I've seen tests between Win10 1803 and Win10 1809 which show approx 10% increase in FPS in favor of 1809 (but that's GPUs not CPUs).
So I have a question about what system I should use to do some C# development. In my course this year at least half of my courses require me to be using Windows specific programs i.e visio, MSSQL, C# etc. I know there are alternatives but I would like to stick to these. I'm wondering about two choices and wanted to know what people could suggest - I am more concerned with performance issues. I have a Macbook Pro and I could run windows 7 on it under virtualbox where I could give it 4gb of ram. Remember I would need windows open a lot with potentially multiple programs running. I also have a desktop gaming rig from a year ago which is much more grunty and am contemplating just using that instead where I could run windows natively. I would prefer to use the mac, but really what I wanted to know is if anyone else uses windows under vb with 4gb of ram dedicated to it with no performance issues?
It depends on what type development do you want to do ? If you will develop desktop,web,console application 4gb ram will work fine for you but if you develop mobile projects or games it will be a problem future times. I have co-worker friend who using MacBook Air and developing C# programs he is using two OS one of them is orginal MacBook OS other one W8 if you have 2 section HDD you can create another OS on your notebook. I think best solution for this stuiation is setup Windows 8 to your computer.
I am developing a .NET application, and have the luxury of doing this on a fairly powerful desktop PC. I want to ensure it runs okay on PCs with much lower spec, but I don't have spare machines kicking around and can't really afford to buy them. Is there any way to simulate a lower-spec PC on my current PC, to get a feel for how the software might run?
Any help or advice would be very much appreciated.
*My PC is Windows 7 Ultimate 64-bit with 8-core Intel i7 and 16GB RAM.
You could install VMWare and install any OS you want, with any hardware specs you want, provided that they don't exceed your current working hardware of course.
Keep in mind that VMWare is just a virtualization layer. It emulates an OS but you are still running your code on the same i7.
http://www.asp.net/mobile/device-simulators Here is an example of several Visual Studio plug-ins that emulate devices. You can also install Windows 8 and run hyper-v. It's great for this kind of thing.
I'd like to ask anybody who has built a virtualized VS2010 environment in VirtualBox or VMware, which one was able to work out of the box without too much tweaking? Or both need workarounds to get stuff working?
Both are fine as long as you install the respective tools and drivers provided for the guest OS
If you're using VMWare Workstation, you can leverage even more out of the environment by installing Visual Studio on the Host PC, and using the Guest VM for debugging, if your application crashes you can actually rewind back to before the crash and step through your code with the same heap and stack before it crashed!
Basically, I suggest going with VMWare Workstation. It's pretty cheap (assuming you get paid to program) and has many, many awesome features that you'll come to love. If you're a hobbyist/student programmer however, you'll likely find VirtualBox to be a little more functional than the free VMWare Player.
As far as performance goes, Intel and AMD both have shipped chips with hardware virtualization since 2005/2006 respectively. This is called VT-x or AMD-V, and often has to be enabled in the bios on older machines.
Basically this means that your BIOS handles Memory and I/O virtualization on this chip, while specialist drivers (e.g. VMWare Tools) are installed to improve graphics and mouse performance - effectively this means the resulting VM has near native performance with minimal overhead.
Hope that helps!
You can work with a VS2010/Windows virtualized environment with no problems.
I've worked with such combination and I had no problems. Both VMWare and VirtualBox are stable so far since years and Windows OS virtualization works properly.
Obviously, you can have performance loss, because a virtualized OS has more bottle necked access to resources than a host one, but current CPUs from Intel and AMD have advanced virtualization instruction extensions which accelerates virtualization operations.
So... Just go ahead!
I don't know your requirement but there is also a great alternative using Win 7.
You can create a vhd file and boot on the vhd file.
A few steps more, you can create a base vhd file with everything you need, mark it as readonly and create as many differential disk as you want.
The drawback of this method are these ones :
it's a bit tricky to create the base and diff disk, because you have to do it in the setup console of windows setup (but google can help you)
there is a small performance impact on the disk I/O (but lower than the visualization environment)
you can run only one system at a time. In fact, nothing disallow you to install a virtualization software
you can't have your "host" and it's potential tools (corporate email, etc.)
but at least, the performance will be greatly better than a virtualization software.
Is anyone using Virtual PC to maintain multiple large .NET 1.1 and 2.0 websites? Are there any lessons learned? I used Virtual PC recently with a small WinForms app and it worked great, but then everything works great with WinForms. ASP.NET development hogs way more resources, requires IIS to be running, requires a ridiculously long wait after recompilations, etc., so I'm a little concerned. And I'll also be using Oracle, if that makes any difference.
Also, is there any real reason to use VM Ware instead of Virtual PC?
I've used VirtualPCs for a few years for development of some fairly hefty web apps without much problem. Lots of RAM is important. I keep my VPCs on an external USB drive and they perform great from there. This gives me the flexibility to take the drive with me if I need to do work somewhere else... just install VPC on a host plug in the USB drive and start coding.
For servers, we use VMWare and have had little to no trouble with it.
Recently I went back to working on my local machine as you lose the benefit of dual monitors with VPCs, and I don't need to be as mobile as I used to.
Virtual PC 2007 is very fast esp on a CPU that has hardware support for VM's. 3GB RAM a must for anything not small. XP makes a good guest OS, Vista works well as a host.
Thanks for all the answers. So RAM is the key.
As far as dual monitor capability, I found that I could use dual monitors, as long as one of those monitors was my actual machine. And that was what I wanted anyway.
Mike
As long as you have the resources (separate hard disk for the virtual machine, sufficient RAM), I don't see why you would have any problems.
If you are going to be using VPCs as a server...perhaps Hyper-V (http://en.wikipedia.org/wiki/Windows_Server_Virtualization) is something to look at.
Its pretty powerful, in how it lets you assign RAM / CPU Cores to a virtualized machine.