PR# 18044 Running external commands using Unix implementation of PROCESS library is extremely slow
Problem Report Summary
Submitter: finnianr
Category: Other
Priority: Medium
Date: 2011/12/11
Class: Bug
Severity: Serious
Number: 18044
Release: 7.0.8.8074
Confidential: No
Status: Open
Responsible:
Environment: Ubuntu Linux 10.10 x86_64
Synopsis: Running external commands using Unix implementation of PROCESS library is extremely slow
Description
Hi today I tried finalizing a program where I had replaced calls to {EXECUTION_ENVIRONMENT}.system with calls to PROCESS. I was struck by how slowly the commands seemed to be returning. So I ran a bench mark to compare the old version with the new. Here are the results: Using PROCESS: TIME: 0 hrs 1 mins 9 secs 375 ms Using {EXECUTION_ENVIRONMENT}.system: TIME: 0 hrs 0 mins 1 secs 439 ms Something is obviously very wrong with PROCESS but why? My program makes about 60 assorted calls to: lame; cp; mv; rm. It is a problem for my product if I can't use PROCESS because on Windows the call to {EXECUTION_ENVIRONMENT}.system causes a shell window to briefly pop up. This looks bad to end users and was the main reason I wanted to use the PROCESS library. Also I was expecting a performance boost on some Eiffel classes that wrap the Unix 'find' and Windows 'dir' with a common interface, since it was no longer necessary to pipe the results into a temporary file before reading into Eiffel. Attached is the abstract class I use for calling PROCESS
To Reproduce
Problem Report Interactions