From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.180.207.44 with SMTP id lt12mr12428082wic.5.1374569353232; Tue, 23 Jul 2013 01:49:13 -0700 (PDT) X-Received: by 10.49.12.141 with SMTP id y13mr1181567qeb.41.1374569352696; Tue, 23 Jul 2013 01:49:12 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!news.unit0.net!feeder1.cambriumusenet.nl!feed.tweaknews.nl!209.85.212.215.MISMATCH!gf3no392824wic.0!news-out.google.com!b5ni76354wiz.1!nntp.google.com!gf3no392821wic.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Tue, 23 Jul 2013 01:49:12 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=194.15.135.12; posting-account=GxWvNgoAAAAH4SakIxF38Jkeu4kDHb6i NNTP-Posting-Host: 194.15.135.12 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <91af1dde-9a21-44cd-959e-dfa86bb0c1a3@googlegroups.com> Subject: very fast procedure call From: wrostek Injection-Date: Tue, 23 Jul 2013 08:49:13 +0000 Content-Type: text/plain; charset=ISO-8859-1 Xref: news.eternal-september.org comp.lang.ada:16494 Date: 2013-07-23T01:49:12-07:00 List-Id: Hi all, this question is related to my tracing work started here last week. https://groups.google.com/forum/#!topic/comp.lang.ada/vSNunYeX6GY For injecting a bunch of trace I'll need an ultimate fast store call. Here my approach. The trace call will only provide storing 4 and 8 byte values. Each call should generate a pair of id/value. There is no tasking/threading involved. First looking at the package body behaviour I'll come to the interface later. The body will use an array storage area which will be copied to disk at the end of each 20msec cycle. (this may even be done via shared memory by a different process) Filling the array should be really fast. The interface should be somehow this kind (sorry using C style) procedure put32u(id: in uint32; val: in uint32); procedure put32s(id: in uint32; val: in sint32); procedure put32f(id: in uint32; val: in float32); procedure put64d(id: in uint32; val: in double64); This should be sufficient for the caller (e.g. an emum must be converted to use the first call). I would like to make all inline, no range checking, no C-usage, etc. Can you give me some ideas or a similar example? thanks in advance Wolfgang R.