Loading ...
Sorry, an error occurred while loading the content.
 

Re: [XSL-FO] Peformance Issues

Expand Messages
  • Peter Wu
    Greetings, Our workaround is to deploy FOP as a distributed Apache application on dual-core desktops. we use a tool called SetAffinity to set the processor
    Message 1 of 2 , Jan 24, 2007
      Greetings,

      Our workaround is to deploy FOP as a distributed Apache application on dual-core desktops. we use a tool called SetAffinity to set the processor mask on the Apache service to limit it's use to one processor core (CPU 0) both to prevent Apache from consuming too many CPU cycles and to eliminate overhead due to context switching . We also set an upper limit for heap space to 600MB to prevent the FOP process from using too much memory and execute a system exit when running processes and all jobs in queue have finished to recover any leaked memory. We've installed Apache as a Windows service and set the recovery (wait) period to zero so that the system restarts quickly enough to respond to the next request. We can't tell the difference in terms of response time or performance. In fact, performance is marginally improved because FOP no longer has to compete for resources with server-side applications. SetAffinity can also be used against other desktop applications to prevent
      them from starving FOP although we haven't seen a need to do that yet. Since computing resources for a distributed model of processing automatically expands with the user base, it is unlikely that the application will ever be bottle-necked. Additionally, if we wanted to, we can easily recode the application to distribute job submissions from the requesting node to less busy nodes in the network and pipe back the results.

      Regards,

      peter

      ----- Original Message ----
      From: "Fournier,Danny [NCR]" <Danny.Fournier@...>
      To: XSL-FO@yahoogroups.com
      Sent: Wednesday, January 24, 2007 5:34:37 AM
      Subject: [XSL-FO] Peformance Issues













      I'm currently using FOP 0.20.5 to generate PDF. I'm working on a

      peformance test to compare 0.20.5 and 0.93.



      My workflow consists of building FO markup using server side scripting

      such as Coldfusion. Then, invoking the FOP classes through Coldfusion

      passing the generated FO. I've doubled my page output to about 7 pages

      per second after having optimized the generated FO. Basically I had tons

      of nested tables that I solved using positionned block-containers. I was

      able to eliminate about 2/3 of the FO markup by doing so.



      However, IT is bugging me about it still taking long (taking up

      requests) and impacting the other unique sites on that shared server.



      What are avenues that people take to alleviate such issues?



      Dan












      <!--

      #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
      #ygrp-mlmsg table {font-size:inherit;font:100%;}
      #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
      #ygrp-mlmsg pre, code {font:115% monospace;}
      #ygrp-mlmsg * {line-height:1.22em;}
      #ygrp-text{
      font-family:Georgia;
      }
      #ygrp-text p{
      margin:0 0 1em 0;
      }
      #ygrp-tpmsgs{
      font-family:Arial;
      clear:both;
      }
      #ygrp-vitnav{
      padding-top:10px;
      font-family:Verdana;
      font-size:77%;
      margin:0;
      }
      #ygrp-vitnav a{
      padding:0 1px;
      }
      #ygrp-actbar{
      clear:both;
      margin:25px 0;
      white-space:nowrap;
      color:#666;
      text-align:right;
      }
      #ygrp-actbar .left{
      float:left;
      white-space:nowrap;
      }
      .bld{font-weight:bold;}
      #ygrp-grft{
      font-family:Verdana;
      font-size:77%;
      padding:15px 0;
      }
      #ygrp-ft{
      font-family:verdana;
      font-size:77%;
      border-top:1px solid #666;
      padding:5px 0;
      }
      #ygrp-mlmsg #logo{
      padding-bottom:10px;
      }

      #ygrp-vital{
      background-color:#e0ecee;
      margin-bottom:20px;
      padding:2px 0 8px 8px;
      }
      #ygrp-vital #vithd{
      font-size:77%;
      font-family:Verdana;
      font-weight:bold;
      color:#333;
      text-transform:uppercase;
      }
      #ygrp-vital ul{
      padding:0;
      margin:2px 0;
      }
      #ygrp-vital ul li{
      list-style-type:none;
      clear:both;
      border:1px solid #e0ecee;
      }
      #ygrp-vital ul li .ct{
      font-weight:bold;
      color:#ff7900;
      float:right;
      width:2em;
      text-align:right;
      padding-right:.5em;
      }
      #ygrp-vital ul li .cat{
      font-weight:bold;
      }
      #ygrp-vital a {
      text-decoration:none;
      }

      #ygrp-vital a:hover{
      text-decoration:underline;
      }

      #ygrp-sponsor #hd{
      color:#999;
      font-size:77%;
      }
      #ygrp-sponsor #ov{
      padding:6px 13px;
      background-color:#e0ecee;
      margin-bottom:20px;
      }
      #ygrp-sponsor #ov ul{
      padding:0 0 0 8px;
      margin:0;
      }
      #ygrp-sponsor #ov li{
      list-style-type:square;
      padding:6px 0;
      font-size:77%;
      }
      #ygrp-sponsor #ov li a{
      text-decoration:none;
      font-size:130%;
      }
      #ygrp-sponsor #nc {
      background-color:#eee;
      margin-bottom:20px;
      padding:0 8px;
      }
      #ygrp-sponsor .ad{
      padding:8px 0;
      }
      #ygrp-sponsor .ad #hd1{
      font-family:Arial;
      font-weight:bold;
      color:#628c2a;
      font-size:100%;
      line-height:122%;
      }
      #ygrp-sponsor .ad a{
      text-decoration:none;
      }
      #ygrp-sponsor .ad a:hover{
      text-decoration:underline;
      }
      #ygrp-sponsor .ad p{
      margin:0;
      }
      o {font-size:0;}
      .MsoNormal {
      margin:0 0 0 0;
      }
      #ygrp-text tt{
      font-size:120%;
      }
      blockquote{margin:0 0 0 4px;}
      .replbq {margin:4;}
      -->







      [Non-text portions of this message have been removed]
    Your message has been successfully submitted and would be delivered to recipients shortly.