Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!sri-spam!ames!ucbcad!ucbvax!YALE.ARPA!LEICHTER-JERRY From: LEICHTER-JERRY@YALE.ARPA Newsgroups: comp.os.vms Subject: Re: disk xqp code example -- request Message-ID: <8707211033.AA03137@ucbvax.Berkeley.EDU> Date: Tue, 21-Jul-87 06:33:27 EDT Article-I.D.: ucbvax.8707211033.AA03137 Posted: Tue Jul 21 06:33:27 1987 Date-Received: Wed, 22-Jul-87 06:41:43 EDT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To:Distribution: world Organization: The ARPA Internet Lines: 26 I would like to write some data to disk without the overhead of RMS. I've tried to use IO$_WRITEVBLK as described in the I/O manual, but despite the $QIOW returning success, I find that no data has made it. I $CREATE the file with RMS, save the FID for the subsequent I/O calls, etc. I also extend the file before I access it. The extend works fine. As someone has already pointed, be sure to check the status in the IOSB, not just the status returned by the QIO. HOWEVER, it's worth pointing out a fundamental incorrect assumption behind what you are trying to do. You are unlikely to notice any significant gain from completely avoiding RMS. Rather than going through all this effort, try using RMS in block mode (using $READ and $WRITE). These calls provide only a very thin veneer over the QIO level, and have almost no overhead. They are a lot easier to use than the disk QIO's. There are probably some very special cases where direct QIO-level access to the disk is justified, but I'd certainly try RMS block I/O first. (In fact, in many circumstances using RMS in non-block mode will produce BETTER performance than simple-minded low-level code, mainly because of RMS's built-in multi-block buffering. Yes, you can duplicate all that sort of stuff, but often people just assume that because they are moving to lower levels of the I/O system, they'll get better performance. They CAN get better performance - IF they put in the necessary work. Big if!) -- Jerry -------