array bound checks

From: [at]} <ftkachov{>
Date: Tue, 18 Feb 2003 12:46:16 +0300 (MSK)

----boundary-LibPST-iamunique-2066041254_-_-
Content-type: text/plain

> The question is whether mandatory range checking unacceptably slow down
> memory access. Does anyone really know?

I've played with this a while ago in program where a (short) array
was used over and over again within a multiple loop.
I tried to replace the array by independent variables
and even by a circular list.
CPU time fluctuated within 1% as a result -- within measurement error.
It was a Pentium/133.

Presumably, the code and data got sucked up
into the innermost cache and the pipelining did its job.

Perhaps, for large arrays the results may be different
but based on my experiences, I do certainly not expect a 20% slowdown
on Intel chips unless the loop contains very few instructions.
If this particular piece of code is embedded into a realistic program,
then one should worry about this only in very exotic situations.

Cheers,
Fyodor Tkachov

--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-2066041254_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gVGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgbWFu
ZGF0b3J5IHJhbmdlIGNoZWNraW5nIHVuYWNjZXB0YWJseSBzbG93IGRvd24gXHBhcg0KPiBtZW1v
cnkgYWNjZXNzLiAgRG9lcyBhbnlvbmUgcmVhbGx5IGtub3c/XHBhcg0KXHBhcg0KSSd2ZSBwbGF5
ZWQgd2l0aCB0aGlzIGEgd2hpbGUgYWdvIGluIHByb2dyYW0gd2hlcmUgYSAoc2hvcnQpIGFycmF5
XHBhcg0Kd2FzIHVzZWQgb3ZlciBhbmQgb3ZlciBhZ2FpbiB3aXRoaW4gYSBtdWx0aXBsZSBsb29w
LlxwYXINCkkgdHJpZWQgdG8gcmVwbGFjZSB0aGUgYXJyYXkgYnkgaW5kZXBlbmRlbnQgdmFyaWFi
bGVzXHBhcg0KYW5kIGV2ZW4gYnkgYSBjaXJjdWxhciBsaXN0LlxwYXINCkNQVSB0aW1lIGZsdWN0
dWF0ZWQgd2l0aGluIDElIGFzIGEgcmVzdWx0IC0tIHdpdGhpbiBtZWFzdXJlbWVudCBlcnJvci5c
cGFyDQpJdCB3YXMgYSBQZW50aXVtLzEzMy5ccGFyDQpccGFyDQpQcmVzdW1hYmx5LCB0aGUgY29k
ZSBhbmQgZGF0YSBnb3Qgc3Vja2VkIHVwIFxwYXINCmludG8gdGhlIGlubmVybW9zdCBjYWNoZSBh
bmQgdGhlIHBpcGVsaW5pbmcgZGlkIGl0cyBqb2IuXHBhcg0KXHBhcg0KUGVyaGFwcywgZm9yIGxh
cmdlIGFycmF5cyB0aGUgcmVzdWx0cyBtYXkgYmUgZGlmZmVyZW50XHBhcg0KYnV0IGJhc2VkIG9u
IG15IGV4cGVyaWVuY2VzLCBJIGRvIGNlcnRhaW5seSBub3QgZXhwZWN0IGEgMjAlIHNsb3dkb3du
XHBhcg0Kb24gSW50ZWwgY2hpcHMgdW5sZXNzIHRoZSBsb29wIGNvbnRhaW5zIHZlcnkgZmV3IGlu
c3RydWN0aW9ucy5ccGFyDQpJZiB0aGlzIHBhcnRpY3VsYXIgcGllY2Ugb2YgY29kZSBpcyBlbWJl
ZGRlZCBpbnRvIGEgcmVhbGlzdGljIHByb2dyYW0sXHBhcg0KdGhlbiBvbmUgc2hvdWxkIHdvcnJ5
IGFib3V0IHRoaXMgb25seSBpbiB2ZXJ5IGV4b3RpYyBzaXR1YXRpb25zLlxwYXINClxwYXINCkNo
ZWVycyxccGFyDQpGeW9kb3IgVGthY2hvdlxwYXINClxwYXINCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHBhcg0KXHBhcg0KVG8gdW5zdWJzY3JpYmUgZnJvbSB0
aGlzIG1haWxpbmcgbGlzdCwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAidW5z
dWJzY3JpYmUiIHRvOlxwYXINCiAgIGJsYWNrYm94LXJlcXVlc3RAb2Jlcm9uLmNoXHBhcg0KXHBh
cg0KVG8gZ2V0IGEgbGlzdCBvZiB2YWxpZCBlLW1haWwgY29tbWFuZHMgYW5kIGluc3RydWN0aW9u
cyBvbiB0aGVpciB1c2FnZSwgc2VuZCBhIG1lc3NhZ2UgY29udGFpbmluZyB0aGUgd29yZCAiaGVs
cCIgdG8gdGhlIGFib3ZlIGFkZHJlc3MuXHBhcg0KXHBhcg0KU2VuZCBhbnkgcHJvYmxlbSByZXBv
cnRzIG9yIHF1ZXN0aW9ucyByZWxhdGVkIHRvIHRoaXMgZW1haWwgbGlzdCB0byB0aGUgbGlzdCBv
d25lciBhdFxwYXINCiAgIG93bmVyLWJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCkN1cnJl
bnQgcG9zdGluZyBwb2xpY3k6XHBhcg0KXHBhcg0KYSkgVG8gcG9zdCB5b3Ugc2hvdWxkIHVzZSB0
aGUgc2FtZSBhZGRyZXNzIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgbWFpbGlu
ZyBsaXN0LiBUaGF0IHdheSwgdGhlIGxpc3Qgc2VydmVyIHdpbGwgcmVjb2duaXplIHlvdSBhcyBz
dWJzY3JpYmVyIGFuZCBmb3J3YXJkIHlvdXIgcG9zdGluZyBpbW1lZGlhdGVseSwgd2l0aG91dCBj
cmVhdGluZyBhbnkgb3ZlcmhlYWQuXHBhcg0KXHBhcg0KYikgSWYsIGZvciBzb21lIHJlYXNvbiwg
eW91IGNhbm5vdCBwb3N0IGZyb20gdGhlIGFkZHJlc3MsIGJ5IHdoaWNoIHlvdSBhcmUgc3Vic2Ny
aWJlZCwgeW91ciBtZXNzYWdlIHdpbGwgYmUgbW9kZXJhdGVkIHRvIGF2b2lkIHNwYW0uIFBsZWFz
ZSB1bmRlcnN0YW5kIHRoYXQgbW9kZXJhdGlvbiB3aWxsIG9mdGVuIGNhdXNlIHNvbWUgZGVsYXks
IGluIHBhcnRpY3VsYXIgb3ZlciB3ZWVrZW5kcyBvciBob2x5ZGF5cy5ccGFyDQp9


----boundary-LibPST-iamunique-2066041254_-_---
Received on Tue Feb 18 2003 - 10:46:16 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:29:26 UTC