Third Party Product Review:
Reviews are a new feature of Planet Source Code that allow site visitors to share their experiences on
commercial third party products in real life situations.
|
|
|
Terms of Agreement:
By using this review, you agree to the following terms...
1) You may use any of the code in
this review in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
2) You MAY NOT redistribute this review (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.
3) You may link to this review from another website, but ONLY if it is not wrapped in a frame.
4) You will abide by any additional copyright restrictions which the author may have placed in the review or review's description. | How does it work?
How does
it work? If you think about it the .htm, .asp, etc. files being served by
IIS are not very efficient...they are basically bulky text files. If you
could compress them before sending them out, your download times would be
greatly shortened.
I didn't know
this before, but the HTTP 1.1 standard actually already includes support for
this sort of compression. This standard is supported in 95% of
browsers...IE4.0+, Netscape 4.0+ and Opera 4.0+). However, you do need the right
software on your internet server to recognize the browser and serve it out
compressed content...and most servers don't have this.
Microsoft
included such a feature in IIS...but if you've used it, you know that it's a
little buggy and it only works on static HTM pages...not your dynamic ASP pages.
That's
where PipeBoost comes into play. It can compress content on the fly and
serve it to the browser, which un-compresses it and displays it. It is so
simple to implement...you just run a short 3 minute install program and its
ready to go...no configuration required on either the server or the browser (of
course if you want to get fancy you can tweak the server GUI for hours...but for
most installations the default install will be more than adequate).
Test Results
Before rolling out PipeBoost, I tested it in the lab. I
downloaded the trial version and installed it on a server here in Tampa,
Florida. Then I put a test 9.12 Mb Excel Spreadsheet in a test directory
and downloaded it from a browser located in Boston, Mass. (this was done
via terminal server) and measured the results.
The
improvement was eye-popping.
|
|
Time to
download |
No
compression |
|
1 minute 2
seconds |
PipeBoost
compression |
|
23 seconds |
|
|
|
Difference: |
|
3.7 x speed increase |
After rolling it into
production, I immediately saw a 27% decrease in bandwidth usage...or about an
entire T1 worth of data. Planet Source Code actually has alot more
compressed .zip files than most sites do (which of course can't be further
compressed by PipeBoost), so most sites should see an even larger decrease in
bandwidth.
Trying it on your own
PipeBoost has a great tool
on their web site that lets you test their product on your own web site, without
having to install it...to get an idea of how much it can compress your content
and save you. Just go to PipeBoost and click on "Request Report" and then
type in your URL. The Planet Source Code home page showed that it could be
compressed 73%!
My Conclusion
This is one of the few 'must
have' products for IIS. I your website does anything more than trivial
traffic, you should seriously
consider this program. To download this program , go to
PipeBoost and click on
'Downloads'. | |
Other 34 submission(s) by this author
|
|
|
Report Bad Submission |
|
|
Your Vote! |
See Voting Log |
|
Other User Comments |
2/21/2002 10:06:20 AM:marc You could at least have the decency to
tell readers that this software costs
$1499 per licence. It would have saved
15 minutes of my precious time.
|
2/21/2002 10:27:46 AM:Ian Ippolito (psc) Marc,
Sorry if I didn't make it
clear enough from my review that you
were mislead. Let me clarify...if
you're running a personal web site on
your home machine, this product is not
for you. However, I do recommend it
for anyone running a site that takes up
at least 1 T1 worth of bandwidth as it
will pay for itself within a month.
Ian
|
2/24/2002 6:01:26 AM:Michael Barron Doesn't the mod-GZip module for apache
do this anyway,??
|
2/24/2002 10:38:26 AM:Ian Ippolito (psc) Michael,
I don't know as I'm only
familiar with IIS. This product
doesn't work on Apache.
Ian
|
3/6/2002 9:23:17 AM:Shawn Elliott This uses the same technology as the
GZip module for apache. In all
actuallity with the right C++ plugin
made for IIS. In fact.. Even a Visual
Basic plugin made to interface with IIS
could do this. How do I know...
because you can intercept all buffer
output by IIS and then compress it.
After you do that you modify the
context-type that is sent back to the
browser as the compressed type. Of
course you would want to check the
Agent to make certain it supports this.
If not then you don't buffer the
output from the server request. If so
then you do.
My company had me
implement something like this with
apache using something similar to the
mod for Apache but with some slight
modifications
|
3/6/2002 11:01:17 PM:alik996 Elliot, sound's like you never in your
life done any programming for IIS at
all. First, there is not way you can
intercept IIS calls easily, expect
writing an ISAPI filter. And you should
know, that they can't write ISAPI
filter in Visual Basic at all. There is
a technique of developing ISAPI filters
in VB, by using Desaware.com
(Spyworks). This will make performance
terrible. I understand jealousy of
people when see real quality product.
Usually they think "I could write the
same thing and make so much money".
Development of the same application for
Apache is almost no brainier. You have
to just take source code of mod_gizp
(Open Source) and modify it a little
bit if you want to. Apache and IIS
absolutely 2 incomparable differences.
There is no way to do it in VB. Period.
Please try not to advise anything
without deep knowledge of the issue.
|
3/11/2002 2:49:43 PM:AndrComm http://www.justpc.com/iax.htm
|
3/11/2002 3:42:28 PM:Ian Ippolito (psc) AndrComm,
FYI, there's a
difference between programming an ISAPI
application(which is what the link you
just posted shows how to do) and an
ISAPI FILTER, like Pipeboost. An ISAPI
app basically returns web content,
while a filter sits on top of something
like ASP and filters content. An ISAPI
application can be done in VB, but as
far as I know, an ISAPI filter cannot
(with the exception mentioned above by
alik996, of Spyworks) be written in VB.
Then to further complicate matters
further...in VB.NET, it will be
possible to create ISAPI filters for
ASP.NET applications.
|
3/12/2002 1:52:55 AM:alik996 AndrComm, Key difference between ISAPI
Filter and ISAPI Extension that is
ISAPI Filter is being executed on EVERY
ACCESS to the web server. No matter
this is an ASP script, image or
anything else. Just think about
performance of your web server, when
you have to parse strings and data
streams in VB on EVERY REQUEST and
RESPONSE. VB is still macro language,
and it can’t come even closer to power
of C++. Implementation of this scenario
will limit power of your IIS to 1
executed thread at the time. Answer is
very simple, it’s impossible to
implement ISAPI filter in VB with same
efficiency as in C++. Period.
|
3/18/2002 9:25:13 AM:AndrComm Ok, I figured that out a second after I
clicked submit... silly me :)
|
4/25/2002 5:26:21 PM:Shawn Elliott alik996, I am willing to admit that I
posted a bit hasty... but after
checking back with this conversation
noted you made the comment "VB is still
macro language" after telling me that I
need to "Please try not to advise
anything without deep knowledge of the
issue". I believe that you have been
found guilty of the same thing with
which you have accused me of. Yes
Visual Basic does require the runtime
dynamic linked library for some
codebase. But it is not a 'macro'
language. It used to be and still can
be compiled into pseudo code which used
tokens for code. However, since VB5,
Visual Basic supports native
compilation which means that Visual
Basic compiles into native machine code.
|
5/1/2002 5:28:29 PM:Wilson My last post got garbled. I wanted to
point out the www.megaphat.com has a
tool called vbExport which my company
has used to successfully develop ISAPI
filters and extensions.
|
5/1/2002 5:37:00 PM:Wilson 'Implementation of this scenario will
limit power of your IIS to 1 executed
thread at the time. Answer is very
simple, it’s impossible to implement
ISAPI filter in VB with same efficiency
as in C++. Period.'
This isn't true.
While VB Classes are STA objects that
doesn't nto mean your Filter will limit
IIS to a single thread of execution
unless YOU, the PROGRAMMER cause that
to happen through crappy design.
The
real programmer would use COM+ for
object pooling, this would be
considerably more efficient than
instancing objects you need on every
page access.
Also with something
like vbExport you're not living within
a single object, you're living within a
DLL that has exports, just like C
allows.
|
5/1/2002 5:50:04 PM:Wilson Win32 is Win32 and pointers are
pointers, regardless if the language is
VB or C. From that perspective, you
can come down to C/C++ equivalent
speeds in string manipulation using VB.
Marginal at worst, meaning that for 1
million iterations of processing you
might lose 2-4 seconds. I know this
because in 2000 a group of us spent 3-4
weeks benchmarking alternative string
algorithms within VB, C, Delphi and
Assembler. With a base processing time
of 5 seconds (this is iterative, fill
and spill cycles and similar), ASM
(highly optimized) modules acheived
~400-600ms for 5mb of string data. C
acheived <2 seconds with full compiler
optimizations while VB acheived <5
seconds.
Now do the math. 5MB of
data.. 2-5second performance hit.
Relate that to total cost of
performance versus time to market and
cost of labor...
ISAPI is doable in
VB. Period.
|
5/1/2002 5:53:52 PM:Wilson The last thing I wanted to point out
here was that the guy who said ISAPI
was possible in VB was not incorrect.
And while it may not be your personal
choice in programming a solution, don't
sit here and beat a man down because
you don't fully understand a solution
yourself.
If you don't agree, that's
fine. Everyone has opinion, but you're
out of place trying to convince
everyone who reads tehse posts that
such work is impossible and largely
inconcievable using VB.
It's not.
You just lack the experience to make it
happen the way it should. Unfortunately
60% of the 'VB developers' out there
are just like that, will probably write
fundamentall loathesome code that
largely underperforms a C/C++ (or even
Java) equivalent.
You can't blame
the platform or the languages, it's the
programmers...
|
5/13/2002 4:13:26 PM:John Heslop Im confused, C/C++ that IIS that what
dose it all mean :P
|
6/5/2002 11:00:29 AM:Falko Schwabe I don't agree to guys who say VB is
slow and not a solution for speed
programming. I currently develop a 3D
Engine in VB, the only speed hole in
the Engine is Windows itself. If you
have a target and you know how to do it
in VB then sometimes u will be able to
win against C++.
An example, I wrote
a Setup in VB, but as I compared it
with a C++-Setup, like Microsoft's
Install Shield, my was the faster one
in copying files (hurray :-).
These
my last words: Ian, keep smiling, the
only thing you did is that you speed up
PSC which million of programmers use
with slow modems.
PS: To alik996 who
said VB is a macro language. VBA,
included in MS Office Appz, is a macro
language, but not the native VB. VB has
a native compiler, and that's a great
difference to VBA.
PPS: I know my
English is bad, sorry, I'm a *ucking
German.
|
6/5/2002 8:57:32 PM:Ian Ippolito (psc) Pretty ungrateful guy, Falko....A
million 56kbps modems got sped up from
32kbps to 51kbps and you're not happy!
Just kidding, because I assume you are
too! ;)
Anyway, I think Alik is
talking about older versions of VB
(i.e. VB 5.0 and before). VB 6.0
compiles using the same native compiler
as C/C++ and of course in VB.NET the
end result is virtually
indistinguishable from C++ or C#.
Ian
|
6/7/2002 8:57:56 AM:Falko Schwabe Sorry, Ian, I have an ISDN-Adapter. My
message was that you've helped many of
us (!!! I'm very happy ... and other
peoples too !!!). X-DSL overwhelms the
Internet-Economy, and one time everyone
has a DSL-Adapter (or better). But til
now, the majority use standard modems.
I never wanted to annoy you ... sorry
sorry sorry.
|
6/7/2002 5:56:59 PM:Ian Ippolito (psc) No problem Falko...I just
misunderstood, but as you can tell from
my last post I wasn't annoyed with you,
I just thought you were joking!
;)
Ian
|
6/13/2002 1:47:03 PM:Julien Gascon Samson I have a question; is VB6 REALLY faster
than VB5? I currently use VB5, should I
move to VB6 or VB.NET?
|
6/23/2002 6:32:53 AM:Kage Julien, yes, VB6 is faster to a degree.
There were a few moderate changes, but
I'm really fuzzy on the details. All I
know is, VB6 is more widely supported.
|
8/20/2002 9:29:52 AM:Brian Clark From what I can see this took alot of
work and turned out to be an great
product! Also for the VB6 Question. I
currently use VB.NET and it seems to be
faster than VB6. I think the MS.NET
Framework has alot to do with the
speed. I have really been able to
increase production time on the .NET
platform.
|
8/21/2002 10:45:09 AM:Vlad Vissoultchev can someone comment this:
Internet
Information Services->(your
host)->Properties->Master
Properties->WWW
Service->[Edit]->Service->HTTP
Compress->Compress Application
Files/Compress Static Files
also
check out in ISAPI Filters tab the
Compress (!) filter. as far as i
understand it GZIP (deflate)
compression of HTML files/ASP output in
IIS 5.0 is only a click away. no 3rd
party filters needed
whatsoever.
now, am i getting
something wrong
here?!
HTH,
</wqw>
|
8/21/2002 11:20:49 AM:Ian Ippolito (psc) Vlad,
My understanding from reading
the documentation on that feature is
that it only applies to HTM files...not
to ASP files.
Ian
|
8/22/2002 11:15:25 AM:M Dikov Ian I don't know which document you
have in mind, but the one I am reading
says (and I tested it), that with IIS
you can compress on the fly htm, txt,
html, asp, exe, dll files by default
and whatever file types you want if you
edit the IIS metabase.
Here is what I
am
reading:
http://www.microsoft.com/techn
et/treeview/default.asp?url=/technet/pro
dtechnol/iis/maintain/featusability/http
comp.asp
|
8/22/2002 11:21:49 AM:Ian Ippolito (psc) M. Dikov,
Whoops...bad memory on my
part. I should have said "the feature
is not recommended by Microsoft to be
used with dyamic content such as .asp
pages". (look under "Not ideal
situations to enable HTTP Compression:
" in your link). I believe the
Pipeboost product is optimized for
this....hopefully a Pipeboost person is
reading this discussion and will chime
in with info on that side...
|
8/23/2002 11:53:14 AM:jk I love all this banter. Everyone
should get up to speed with the current
languages out there. VB.NET can be
used for an ISAPI filter, it's quite
easy. It is also quite easy to
multithread a vb app now. Or you can
even use C#... same speed though since
it all compiles to MSIL
|
11/29/2002 12:10:01 PM:Lucas Holt The Microsoft solution is buggy. In
particular, there are problems on non
windows platforms. For example,
sometimes IE 5 Mac has problems
interpreting a response from IIS as a
compressed stream. The browser
displays the compressed document (i.e.
garbage) to the user. If this other
product fixes this problem or disables
IE 5 mac, then it would be worth the
money for large organizations.
|
|
Add Your Feedback! |
Note:Not only will your feedback be posted, but an email will be sent to the code's author in your name.
NOTICE: The author of this review has been kind enough to share it with you. If you have a criticism, please state it politely or it will be deleted.
For feedback not related to this particular review, please click here. |
|