473,406 Members | 2,217 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

XSLT - MemoryStream - Performance

I am writing thousands of html pages from an MS SQL source using a
DataSet and then an XslTransform. I have an interest in making the
code run faster as it takes several minutes (sometimes ten minutes) to
generate a batch of pages (say two thousand).

If anyone has URL resources which performance information germane to
XSL Transforms, Streams, and XML I am interested in hearing about
them. I have written some notes below of what I am doing.
My Trace.Warns have shown that the time used is used on the
XslTransform (and associated classes).

Methods
=======

First Method: All XML docs were written to disk and the read in
locating via MapPath.

Second: All XML docs were written to MemoryStream and then the streams
are read directly into Xpath and then the transform. Traces show
internally this is much quicker (about five times) but the elapsed
time of the whole process is still slow. The DB access is very quick
(100 ms) and so is DataSet handling.
Nov 12 '05 #1
2 3645
Trevor Oakley wrote:
I am writing thousands of html pages from an MS SQL source using a
DataSet and then an XslTransform. I have an interest in making the
code run faster as it takes several minutes (sometimes ten minutes) to
generate a batch of pages (say two thousand).

If anyone has URL resources which performance information germane to
XSL Transforms, Streams, and XML I am interested in hearing about
them.


Take a look at recently published "Improving XML Performance" chapter of
the "Improving .NET Application Performance and Scalability" guide -
http://msdn.microsoft.com/library/de...netchapt09.asp

I'd try to optimize XSLT first.

--
Oleg Tkachenko [XML MVP]
http://blog.tkachenko.com
Nov 12 '05 #2
Hi Trevor

I have just read your post about performance concerns.

I want to draw your attention to a new technology we have recently made available in beta.

Persistore is the first managed class library for .NET 2 that provides access to persistent shared memory.

The technology lets you drag a load of files into a repository (a bit like a database) which then immediately become memory resident SharedStream objects; this has implications for XM and XSL processing.

By keeping this data in-memory (actually mapped into the address space, even the web server) one avoids the overhead of going through the NTFS system or to an external database.

SharedStreams may be used anywhere that a stream is used, and the data is actually in memory, so it accessed very rapidly indeed, in C# or VB.NET this is relatively simple code.

I won’t dwell on these details here; you are encouraged to download the beta class library from our website: http://www.morantex.com/Persistore.aspx

Do not hesitate to contact me with questions, feature requests or bugs, we will try to include any suggestions in our next beta.

On a 64-bit system one can in principle, store over 8,000 G bytes of XML and other data in a shared memory repository, this promises improved performance over a more conventional storage medium.

Regards
Hugh



I am writing thousands of html pages from an MS SQL source using a
DataSet and then an XslTransform. I have an interest in making the
code run faster as it takes several minutes (sometimes ten minutes) to
generate a batch of pages (say two thousand).

If anyone has URL resources which performance information germane to
XSL Transforms, Streams, and XML I am interested in hearing about
them. I have written some notes below of what I am doing.


My Trace.Warns have shown that the time used is used on the
XslTransform (and associated classes).

Methods
=======

First Method: All XML docs were written to disk and the read in
locating via MapPath.

Second: All XML docs were written to MemoryStream and then the streams
are read directly into Xpath and then the transform. Traces show
internally this is much quicker (about five times) but the elapsed
time of the whole process is still slow. The DB access is very quick
(100 ms) and so is DataSet handling.
May 10 '06 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Wil | last post by:
I'm very new to developing in .NET and even newer to XML. The past few days have been pretty frustrating for me because I'm trying to perform a transform on data in a dataset and it's not working....
4
by: schneider | last post by:
Anyone know if there is a way to dynamicly create a Xslt template/s and use them as an xml transform with-out use files for the Xslt? All the methods I see use files. I want to create a Xslt...
2
by: David Laub | last post by:
A transform that works fine in XMLSPy fails when I run it under dot net. I've run many other transforms successfully in dot net so there is something "special" about this transform I just...
2
by: rviray | last post by:
Hopefully, someone could point me in the right direction. I have web services that takes a DataSet object and Transforms it into a pre-defined XSD (outside of my organization's control). I have...
3
by: Andy | last post by:
Hi all, I'm having a problem doing an Xslt transform in code. I've done it before, so I'm not really sure why its not working. The problem is that the result of the transform is an empty...
6
by: Christopher | last post by:
I am currently in the process of evaluating the performance hits of moving to the .NET platform for our application. I created a sample project that loads the transforms the same XML and XSLT in...
1
by: Sergey Dubinets | last post by:
In effort to prioritize our goals we composed the list of random features each of them may add value to set of XSLT tools offered from Microsoft. 1. XSLTc (Compiler for XSLT...
3
by: paradigmshift | last post by:
I am looking at how to move data from a file to a memory stream. This data will be needed many times over and over so i don't want to have to rely on the system to keep the information cashed for...
3
by: joelkeepup | last post by:
Hi, im trying to create a text email message using xslt template , the transforms work great, but the newlines and whitespace in the xslt doc are removed. Is there a setting somewhere I have...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.