The SitePoint Forums have moved.

You can now find them here.
This forum is now closed to new posts, but you can browse existing content.
You can find out more information about the move and how to open a new account (if necessary) here.
If you get stuck you can get support by emailing forums@sitepoint.com

If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Apache2 is supposed to be more stable on win32 NOT faster, and I find it is exactly that ,not faster though it is supposed to do better under load than apache1.* which is not even recommended for win32 + of course PHP4/Apache2 is still experimental and as such quirky.

PHP can run as an ISAPI module on IIS , not sure for sure about the speed difference, MS admit that any server module would probably be faster than say vanilla ASP but of course .NET is a different cookie altogether from that.

But whilst I would love to see a speed fest between the 2 I dont think its realistic to really compare PHP (or PERL/Python/whatever for that matter) on IIS, whatever the result there will always be the 'ah but try it on *NIX factor' possibly from the likes of me even in a `win` situation.

Different databases is as much the key as anything, MySQL excels (as already noted) on straight selects and therefore would be expected to win vs SQL server on the simple stuff , but since MySQL is x-platform you could use that for both? , or Oracle if anyone has a spare liscence (or home edition [haha])

Firepages, exactly, so if we ran one set of tests on the "neutral" environment (win2k) and another set of tests on the "home" environment (.NET Server and xNix) wouldn't that satisfy? It would give us a reasonable baseline so long as the neutral ground tests:

1. Use the same hardware (they will, they'll be on the same machine)
2. Use the same OS (win2k in my opinion)
3. Use the same webserver (ISAPI is extremely fast on IIS5)
4. Use the same database (SQL Server is what we've chosen for the "neutral" tests, right?)

So, we can run the neutral tests on our one unused server here at work Dell PowerEdge 1650 with 1GB of RAM, RAID, Windows 2K Advanced Server, dual processors, etc, and the "home" tests on D's machine.

Originally posted by Jeremy W. Firepages, exactly, so if we ran one set of tests on the "neutral" environment (win2k) and another set of tests on the "home" environment (.NET Server and xNix) wouldn't that satisfy? It would give us a reasonable baseline so long as the neutral ground tests:

Perhaps the neutral ground test should be run on another operating system altogether. How about OSX? or Solaris?

I feel I should reiterate that pure speed does not necessarily translate into a better implementation of a web app - scalability (i.e. performance under load) is what counts....! (which rather unfortunately further complicates the test procedures! sorry!)

As you can see, running the query itself
is usually the biggest hit. The 'looping' thru
is between 45ms and 80ms (on average).

This seems to be in line with the ASP.net numbers -
roughly. The fastest I saw for the full page was 80ms -
I'm assuming there is a better driver set for MSSQL direct than the one I'm using (bad assumption?). Perhaps the DAO
was caching the resultset in memory?

Well, this seems to have died this weekend, so I'll go over where I think we're at, and anyone can post disagreements (though I'll try to address points as I go through). If there are none we'll just start on it this week

Purpose of the tests
The purpose of the testing is not to prove which language is faster, as many would love to do, but to see how they perform in comparable situations so that we can all make more informed decisions whenever we have a project where either could be used. Knowledge is power, and if we are to take over the world we have to have more knowledge

Tests to be performed
The tests will be performed twice through. One set of tests will be run on as neutral environment as we can find, Windows 2000, and then a second time in as highly optimized an environment as possible for each language. Windows 2000 is being chosen as the neutral environment since PHP is cross-platform, and .NET wasn't designed for Windows 2000, though it should run sufficiently well while still having a significant handicap over it's native environment. The tests to be performed are:

All of these will be done on a test-bed app (either what we currently have or a new one) and may include independent Use Cases afterwards.

At this point I should note Harry's "strong disagreement" as he feels that MS will "pull a fast one", "as they did with J2EE". I'm rather offended by that statement, since all code will be open to close inspection by both communities so I'm rather unsure how any "fast one" could be pulled. .NET was written for .NET Server in the same way that PHP was written for LAMP. The usefulness of any tests in a "favourite environment" must always include a baseline, and the closest we can come to a neutral environment is Windows 2000 in which PHP is supposed to perform quite well (especially considering the hardware I'm throwing at this, more to come on that though) and in which .NET performs "okay" (at about 20% of the performance of .NET Server). Without a baseline, or as close as we can come to it, the "favourite environment" tests will be unacceptable to both communities, no matter who wins, and we won't gain any knowledge out of this, which is the actual point of the tests.

Testing Environment
The tests will be run on a cleanly installed Dell PowerEdge 2650 with the following specs:

I hope this is satisfactory, and should eliminate any concerns that the issue is in the hardware. It will be performed over a network (10GB/sec or whatever, I can get the network specs if needed) so we can measure that load as well (though I need to find some software for this), and the database server will be a Dell PowerEdge 1650 with the following specs:

Some may feel this isn't as powerful as the webservers, but there isn't any need to. The load we'll be placing on the websites will have more than 80% of the power @ the webserver and since I know this server can handle a lot more than we'll be throwing at it I'm not too worried about it being a bottleneck either.

The network will be configured as a private network so that no unauthorized access, DoS's or whatever will affect it as otherwise might be possible (though our firewall hasn't let anything through in over a year).

The end result
At the end of the tests, the results will be published as part of the .NET Theme Week coming up soon, and both communities will write an opinion column on it. I'll probably head up the .NET one and Harry'll probably do the PHP community's editorial and both should be subject to peer approval on both sides to maintain a level of professionalism which keeps the editorials focused on our goal: knowledge, instead of bashing one language or another as this test isn't to prove which language is better or worse.

I just received windows .net server so I will be giving that a test soon, just wondering how dhtmlgod is getting on with it and linux, anyone else tested .net server yet?

Anyway...

Originally posted by Jeremy W. At this point I should note Harry's "strong disagreement" as he feels that MS will "pull a fast one", "as they did with J2EE". I'm rather offended by that statement, since all code will be open to close inspection by both communities so I'm rather unsure how any "fast one" could be pulled. .NET was written for .NET Server in the same way that PHP was written for LAMP. The usefulness of any tests in a "favourite environment" must always include a baseline, and the closest we can come to a neutral environment is Windows 2000 in which PHP is supposed to perform quite well (especially considering the hardware I'm throwing at this, more to come on that though) and in which .NET performs "okay" (at about 20% of the performance of .NET Server). Without a baseline, or as close as we can come to it, the "favourite environment" tests will be unacceptable to both communities, no matter who wins, and we won't gain any knowledge out of this, which is the actual point of the tests.

Comments welcome

I kind of agree with Harry, about this, however these results cannot be exact as in different situations different languages/operating systems/databases make all the difference in terms of performance/scalability/security.
Each of these end up as a trade off, especially where security is concerned. Besides this it should be fun to see who comes out ontop