10 Replies Latest reply on Sep 16, 2014 6:36 AM by TSGal

    XML Export with XSLT Is Exponentially Slower with Field Size

    eric

      Summary

      XML Export with XSLT Is Exponentially Slower with Field Size

      Product

      FileMaker Pro

      Version

      13.0v2

      Operating system version

      OS 10.9.4

      Description of the issue

      XML Export Records with XSLT gets exponentially slower as the field size gets larger, but the field doesn't seem all that large before the wait becomes impractical. One of the stylesheets used is below. Attempts were with a single field, single record.
      Sample field sizes vs. execution times:
      080KB, 00:07 (min:sec)
      150KB, 02:31
      300KB, 18:46
      I was hoping to export a 5MB field in this manner.
      (Of course we wouldn't be bothering with XML stylesheets for this export if Export Field Contents would let us pick UTF-8 instead of UTF-16.)

      Steps to reproduce the problem

      Use the following style sheet in Export Records on individual records, single fields of varying sizes, starting with 75KB, doubling the size of the tests till 4,800KB can be exported:


      <!--
      Mikhail Edoshin-2
      Jul 18, 2012; 3:10am
      # this XSLT will work with any version of FileMaker that uses the
      # FMPXMLRESULT grammar as export.
      # Use with one record - one field to preserve the UTF-8.
      # Alternate for Export Field Contents, which is UTF-16.
      # http://filemaker.463488.n4.nabble.com/export-field-contents-UTF-16-td4657351.html
      -->




      Expected result

      If 80KB can export in 7 seconds,
      we should expect 8,000KB to export in less than 15 minutes.

      Actual result

      Sample field sizes vs. execution times:
      080KB, 00:07 (min:sec)
      150KB, 02:31
      300KB, 18:46

      Exact text of any error message(s) that appear

      Just seems to hang on fields larger than a MB.

      Configuration information

      I'm using FMPro 13.0v2 Advanced client against 13 Server.

      Workaround

      I'm hoping for a suggestion.