You could host Razor but I'm not sure how it will handle a template so
large.
http://www.west-wind.com/weblog/posts/864461.aspx

Or possibly you could use NVelocity
http://csharp-source.net/open-source/template-engines/nvelocity
Or StringTemplate
http://www.stringtemplate.org/
Or Spark
http://sparkviewengine.com/

If you're just replacing string tokens with precomputed string values
though, I'd probably just do it one line at a time. Id guess that most of
these template engines are designed to load the template into memory and
turn it into a method that spits out the text given some kind of context
(the way T4 does it [Preprocessed T4 template is another way to go if you
don't mind being all in memory]).


<http://www.west-wind.com/weblog/posts/864461.aspx>--
Michael M. Minutillo
Indiscriminate Information Sponge
Blog: http://wolfbyte-net.blogspot.com


On Mon, Feb 7, 2011 at 10:42 AM, Bec Carter <[email protected]> wrote:

> On Mon, Feb 7, 2011 at 1:33 PM, Michael Minutillo
> <[email protected]> wrote:
> > Well, if the template size isn't going change and this is the only app
> > running on the machine then so be it. Chances are good that neither of
> those
> > things is true. I'd still err on the side of having a single line memory
> at
> > a time because it's not like the optimization is making it any harder to
> > read or understand.
> >
>
> Yup template file will mostly likely not change and app will always
> run locally as an exe. This sort of optimisation you suggested seems
> good enough to use as it is fairly simple.
>
> ...But I was kinda questioning the design of doing things this way at
> all. It seems like what I want is a dynamic "page" (like a webform)
> that can run and spit out text just like an asp page does.....so the
> placeholders would really be <%= %> tags. Is something like this an
> option? Can I somehow run an asp.net page locally? Will this cause
> performance problems for 750megs of data which is around 70 pages? Am
> I going completely crazy? :-)
>
>
> > Michael M. Minutillo
> > Indiscriminate Information Sponge
> > Blog: http://wolfbyte-net.blogspot.com
> >
> >
> > On Mon, Feb 7, 2011 at 10:30 AM, mike smith <[email protected]> wrote:
> >>
> >> On Mon, Feb 7, 2011 at 12:49 PM, Michael Minutillo
> >> <[email protected]> wrote:
> >>>
> >>> If you're in .NET 4.0 land then I'd do something similar to this:
> >>> public string ReplaceTokens(string src) { /* ... */ }
> >>> File.WriteAllLines(outputFileName,
> >>> File.ReadLines(inputFileName).Select(ReplaceTokens));
> >>> The ReadLines call (new to .NET 4.0) reads one line at a time and
> returns
> >>> it as you iterate over it so in theory you don't need to have the whole
> file
> >>> in memory. Don't use the ReadAllLines method on a 750MB file which DOES
> read
> >>> the whole thing in before you start.
> >>>
> >>
> >>
> >> Is that a real problem given physical RAM these days?  If you're going
> to
> >> write multiple outputs from the one template file of 750 it's going to
> >> rapidly get more efficient to have the template in-ram.   Wait a moment.
> >>  You don't work for Readers Digest, do you?  I have no desire whatever
> to
> >> make them more efficient.
> >> --
> >> Meski
> >>
> >> "Going to Starbucks for coffee is like going to prison for sex. Sure,
> >> you'll get it, but it's going to be rough" - Adam Hills
> >
> >
>

Reply via email to