We've been using using 2.05 for three or four years now with Powerbuilder on Sybase EAServer, and are trying to move away from the Kernel Mode Driver and COM.
When I throw 40 threads at the 2.05 driver on my 2ghz workstation they are all finished in about 3 to 4 seconds. Single invocations complete in less than a second
When I throw 40 threads at the latest 2.50 driver, it takes about 12 to 13 seconds. Single invocations complete in a second or less. This timing here is the same for both COM and the DLL interface.
Is the difference in timing related to the fact that it is no longer a kernal mode driver? Anyone else notice a speed decrease with other versions?
I've pasted below is the way that I'm calling the slower 2.50 driver via the DLL interface from Powerbuilder (minus debugging).
Thanks,
Michael H.
------------------------------------------------------------------------
// declarations
constant string ls_printer = "New Amyuni PDF Converter"
constant string ls_company = "Evaluation Version Pro Developer"
constant string ls_code = "07EFCDAB...342BCF355"
constant int li_timeout = 20000 // in milliseconds
datastore lds_document
long lhdl_printer
long ll_rc
// read a fullstate datastore blob into a local datastore
lds_document = Create datastore // create the datastore
lds_document.SetFullState( ablob_document ) // put the blob into the datstore
// print the datastore
Try
// initialize the pdf driver
ll_rc = PrintSetPrinter( ls_printer )
lhdl_printer = DriverInit( ls_printer )
// set some properties and print
ll_rc = Lock( lhdl_printer, as_filename )
ll_rc = SetDocFileProps( lhdl_printer, as_filename, 3, "", as_path + as_filename )
ll_rc = EnablePrinter( lhdl_printer, ls_company, ls_code )
lds_document.object.datawindow.print.documentname = as_filename
ll_rc = lds_document.print()
Finally
ll_rc = Unlock( lhdl_printer, as_filename, li_timeout ) // unlock if needed
DriverEnd( lhdl_printer )
End try
// return
return ll_rc
