Hi Pete,
I guess it does start a new JVM, but the classes are in memory, so no
slow disk access is there. Also the CPU is at 100% during this
initialization. And yes, of course the processing time goes down after
the first call. Then processing is between 1 and 3 ms per call.
The initialization is not too bad I guess. The main cullpit is this function:
xsd.getContents().add(complexType);
It takes 1540 ms on first call.
Cheers, Jos
On 6/24/05, Pete Hendry <[EMAIL PROTECTED]> wrote:
>
> Jos van den Oever wrote:
>
> Yes, Pete, I think you're right. The initial time is the limiting factor.
> 1x: 2.1 secs
> 10x: 2.2 secs
> 100x: 3.5 secs
> 1000x: 5.8 secs
> 10000x: 24 secs
> This initial is probably mostly initialization other then loading. The
> program was run from eclipse which means the classes are already
> mostly in memory. In addition I did all these test after each other.
> But in toto, the overhead is not too bad and the initial time estimate
> (counting) was exaggerated. Apparently, I can count quickly.
>
>
> Even though you are in Eclipse does it not start a new JVM to run your
> program in? This new JVM then has to load all the classes you are using
> (and normal JVM startup isn't instant anyway).
>
> Try adding a call to schema.testEclipseXSD() before your loop (and before
> the line "long j = ...") to cause the classes and other initialisation to
> happen before you start timing.
>
> Pete
>
>
>
>
> Used code:
> long j = System.currentTimeMillis();
> for (int i=0; i<1; ++i) {
> schema.testEclipseXSD();
> }
> System.out.println(System.currentTimeMillis()-j);
>
>
> On 6/24/05, Pete Hendry <[EMAIL PROTECTED]> wrote:
>
>
> Startup time I would suggest with all the classes to load. Try putting
> it in a loop and timing the last loop iteration only.
>
> Pete
>
> Bob Foster wrote:
>
>
>
> Four seconds seems like a long time to make and save an 8-line schema.
>
> Bob Foster
>
>
> Jos van den Oever wrote:
>
>
>
> Thanks for the tip, Nikhil.
>
> I've managed to create a tiny XSD Schema with this standalone code:
>
> public void testEclipseXSD() {
> //Create the root XSDSchema object
> XSDSchema xsd = XSDFactory.eINSTANCE.createXSDSchema();
> xsd.setTargetNamespace("myNS");
> xsd.setSchemaForSchemaQNamePrefix("xsd");
> java.util.Map qNamePrefixToNamespaceMap = xsd
> .getQNamePrefixToNamespaceMap();
>
> qNamePrefixToNamespaceMap.put(xsd.getSchemaForSchemaQNamePrefix(),
> XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001);
>
> // add an element
> XSDComplexTypeDefinition complexType = XSDFactory.eINSTANCE
> .createXSDComplexTypeDefinition();
> complexType.setName("myElement");
>
> complexType.setDerivationMethod(XSDDerivationMethod.EXTENSION_LITERAL);
> XSDSimpleTypeDefinition anonSimpleType = XSDFactory.eINSTANCE
> .createXSDSimpleTypeDefinition();
> complexType.setBaseTypeDefinition(xsd
> .resolveSimpleTypeDefinition("myParent"));
> complexType.setContent(anonSimpleType);
> xsd.getContents().add(complexType);
> xsd.updateElement();
> dom = xsd.getDocument();
> serialize(new OutputStreamWriter(System.out));
> }
>
> The result of which is this:
> <?xml version="1.0" encoding="UTF-8"?>
> <xsd:schema targetNamespace="whatever" xmlns:Q1="whatever"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <xsd:complexType name="tst">
> <xsd:simpleContent>
> <xsd:extension base="Q1:parent"/>
> </xsd:simpleContent>
> </xsd:complexType>
> </xsd:schema>
>
> It's important to note that to get this to work you need to download a
> complete archive from http://www.eclipse.org/xsd and put these jar
> files in your classpath:
> xsd_2.1.0.jar
> emf.ecore_2.1.0.jar
> emf.common_2.1.0.jar
> which totals to about 1.5 Mb.
>
> Running this function takes about 4 seconds in eclipse on a 2.6GHz
> machine.
>
> Cheers, Jos
>
>
>
> On 6/23/05, Nikhil Dinesh <[EMAIL PROTECTED]> wrote:
>
>
>
> Jos van den Oever wrote:
>
>
>
>
> On Thursday 23 June 2005 18:38, Nikhil Dinesh wrote:
>
>
>
>
>
> You might want to check the eclipse xsd apidocs at:
>
> http://download.eclipse.org/tools/emf/xsd/2.1.0/javadoc/
>
> I "think" it gives you the functionality you want.
> -Nikhil
>
>
>
>
> Hi Nikhil,
>
> That looks nice, but can you use it standalone?
> I have trouble creating a Schema instance.
>
> Cheers, Jos
>
>
>
> Hi Jos,
>
> This, I'm not sure about having never used it. From past discussions on
> the group, it
> does seem possible (you might want to search for previous postings on
> eclipse xsd), and
> if memory serves there is considerable overlap between the xerces-j and
> eclipse xsd developers, so
> it might be best to wait until one of them responds...also Ive noticed
> that messages with eclipse xsd
> in the subject receive a flurry of responses, so you might consider
> reposting ;).
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED] For
> additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]