digitalmars.D.learn - memory/array question
- Eric (8/8) Jul 31 2014 Suppose I have some memory allocated on the heap, and I have
- bearophile (5/11) Jul 31 2014 Use something like this (but make sure the length is correct):
- Eric (6/18) Jul 31 2014 Thanks. That really works. I timed doing
- bearophile (4/9) Jul 31 2014 Take a look at the asm!
- Vlad Levenfeld (2/5) Jul 31 2014 I use DMD and Dub, how do I view the asm?
Suppose I have some memory allocated on the heap, and I have two pointers pointing to the beginning and end of a contiguous segment of that memory. Is there a way I can convert those two pointers to an array slice without actually copying anything within the segment? Thx, Eric
Jul 31 2014
Eric:Suppose I have some memory allocated on the heap, and I have two pointers pointing to the beginning and end of a contiguous segment of that memory. Is there a way I can convert those two pointers to an array slice without actually copying anything within the segment?Use something like this (but make sure the length is correct): auto mySlice = ptr1[0 .. ptr2 - ptr1]; Bye, bearophile
Jul 31 2014
On Thursday, 31 July 2014 at 19:43:00 UTC, bearophile wrote:Eric:Thanks. That really works. I timed doing auto mySlice = ptr1[0 .. ptr2 - ptr1]; 1,000,000 times versus auto mySlice = ptr1[0 .. ptr2 - ptr1].dup; 1,000,000 times and I am quite convinced the data is not being copied.Suppose I have some memory allocated on the heap, and I have two pointers pointing to the beginning and end of a contiguous segment of that memory. Is there a way I can convert those two pointers to an array slice without actually copying anything within the segment?Use something like this (but make sure the length is correct): auto mySlice = ptr1[0 .. ptr2 - ptr1]; Bye, bearophile
Jul 31 2014
Eric:Thanks. That really works. I timed doing auto mySlice = ptr1[0 .. ptr2 - ptr1]; 1,000,000 times versus auto mySlice = ptr1[0 .. ptr2 - ptr1].dup; 1,000,000 times and I am quite convinced the data is not being copied.Take a look at the asm! Bye, bearophile
Jul 31 2014
On Thursday, 31 July 2014 at 20:43:11 UTC, bearophile wrote:Take a look at the asm! Bye, bearophileI use DMD and Dub, how do I view the asm?
Jul 31 2014
On Thursday, 31 July 2014 at 20:59:46 UTC, Vlad Levenfeld wrote:On Thursday, 31 July 2014 at 20:43:11 UTC, bearophile wrote:Actually I did't think to look at the asm, mainly because I've never bothered to do it before. But I was just reading Adam's book the other day, and I remember seeing this: objdump -d -M intel simpleOctal Not sure what the switches are for; the name of the program is simpleOctal. But the name of the utility is objdump. (on Linux). Not sure about Windoze. -EricTake a look at the asm! Bye, bearophileI use DMD and Dub, how do I view the asm?
Jul 31 2014
On Thursday, 31 July 2014 at 21:50:25 UTC, Eric wrote:objdump -d -M intel simpleOctal Not sure what the switches are for;-d disassemble - Essential if you want to, well, disassemble. -M intel Intel syntax - Because no one likes AT&T syntax. Wikipedia has a comparison: http://en.wikipedia.org/wiki/X86_assembly_language#Syntax
Jul 31 2014