|
Xmen W.K. wrote: string[] bigArray = new string[int.MaxValue];
Are you really planning on using 2.1 Billion strings in your app? I seriously doubt it.
|
|
|
|
|
As I wrote above, I needed to retrieve value quickly. I knew what I was doing, just asked for better way. So please read the question properly.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
A dictionary is designed to retrieve a key quickly.
|
|
|
|
|
Read the last line[^]
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
A dictionary isn't much slower than an array for lookup values and it also gaurantees constant time lookup no matter how many entries are in the dictionary.
Besides, You were going to try a list? Lists are shitloads slower than a dictionary for lookup performance. You need to get a basic understanding of data structures;
Dictionary is pretty much your only choice.
|
|
|
|
|
oh common man, what are you ? dont you get it yet ? I just asked if there is better way or NOT ?
thats it... I know what is List, Dictionary or Array. So please if you have anything better then come with that not with what I've said above.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Dictionaries are designed to give the highest possible performance to lookup a key
This is what you want to do
There is as you put it 'no other way'
|
|
|
|
|
You still haven't answered the question.
Are you seriously going to use 2,147,483,648 strings in your app? Why and What for? And don't give me this "highest performance" garbage again. That's doesn't explain anything.
|
|
|
|
|
I didnt say it will have, it may have. It depends on the condition and Im not here to read the whole book for you. So either you answer the question what asked or keep your pie hole off.
Nice work to vote the message down. Thats all you could do.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
The entire reason for asking the question is to explore OTHER possiblities since you can't possible create an array the size that you want. Why? Because the array size alone, wihtout ANY data in the strings at all, would occupy over 8 GB of memory (2.14 Billion * 4 bytes per pointer) and requires a single contiguous block of memory. Now, add on all the data in the strings themselves and this memory size just gets higher and higher. I hope your customer is using a 64-bit O/S, 'cause this isn't going to happen in 32-bit.
Xmen W.K. wrote: either you answer the question what asked or keep your pie hole off.
Jackass...
Xmen W.K. wrote: Nice work to vote the message down. Thats all you could do.
I didn't vote it down...
|
|
|
|
|
Dave Kreskowiak wrote: The entire reason for asking the question is to explore OTHER possiblities
I asked a simple question, in yes or no or any other way.
Dave Kreskowiak wrote: since you can't possible create an array the size that you want. Why? Because the array size alone, wihtout ANY data in the strings at all, would occupy over 8 GB of memory (2.14 Billion * 4 bytes per pointer) and requires a single contiguous block of memory. Now, add on all the data in the strings themselves and this memory size just gets higher and higher. I hope your customer is using a 64-bit O/S, 'cause this isn't going to happen in 32-bit.
of course, I dont want to use array but something like that works fast as array.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
Xmen W.K. wrote: I asked a simple question, in yes or no or any other way.
With insufficient detail. All you asked was if there was anything faster for accessing the data. You didn't provide any details about the data itself or how it was being used. This missing information is what would have changed the answer to something more appropriate.
Bottom line is that there is nothing that's going to be as fast, or faster than an array. Since you've got HUGE memory requirements, your management code is going to add overhead, no matter what you do.
|
|
|
|
|
I dunno what else you expect as sufficient. Plus I cannot write everything to ask a simple question, I provided that code snippet which was quite enough to explain everything.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
you failed to explain properly.
if you need an array, i.e. a non-sparse indexed collection then array and List are best;
if you need a dictionary, even when the key is integer but the data is sparse, then nothing beats Dictionary.
List and Dictionary are based on arrays; they offer stretchability and Dictionary also offers sparseness.
The main way to ruin their performance while gathering the data is by not ensuring a sufficient initial capacity.
All the relevant information is in the documentation.
|
|
|
|
|
you failed to understand what I said
the number of string could be any, even 2 billions or 4. I cannot predict. Thats why I chose array, just tried and got error. Dictionary can do what I need but its not that fast as Array.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
I'm sure I do not fully understand what you want, since you failed to explain properly. It is unclear what you want to do with the string collection, whether you need to enumerate them, whether you need to have a fast key->value lookup, and if so whether the key will be an integer, and if so whether the domain of integers will be sparse or not.
Xmen W.K. wrote: I cannot predict. Thats why I chose array
That is absurd. Arrays are fine when you know the count; dynamic collections such as List when you don't.
|
|
|
|
|
Luc Pattyn wrote: That is absurd. Arrays are fine when you know the count; dynamic collections such as List when you don't.
That doesnt apply on what I want. You see you still dont get what I said. And I said well in first post.
assume I have 2 values
15
9134
15 is an ID of "ABCD"
9134 of "IJKL"
now in array I can save like this
array[15] = "ABCD";
array[9134] = "IJKL";
and then I can retrieve string by just using ID as index.
exactly like in Dictionary, but Dictionary is a bit slower than Array. I asked a simple question is there any other way to do that(except using List, Array or Dictionary).
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
we finally got some essential information.
Xmen W.K. wrote: is there any other way
other ways? always. Better ways? no. end of story.
|
|
|
|
|
thats it.
TVMU^P[[IGIOQHG^JSH`A#@`RFJ\c^JPL>;"[,*/|+&WLEZGc`AFXc!L
%^]*IRXD#@GKCQ`R\^SF_WcHbORY87֦ʻ6ϣN8ȤBcRAV\Z^&SU~%CSWQ@#2
W_AD`EPABIKRDFVS)EVLQK)JKQUFK[M`UKs*$GwU#QDXBER@CBN%
R0~53%eYrd8mt^7Z6]iTF+(EWfJ9zaK-iTV.C\y<pjxsg-b$f4ia>
-----------------------------------------------
128 bit encrypted signature, crack if you can
|
|
|
|
|
In code, how can I copy a file from X:\ to X:\archive without reading entire file contents?
I am using :
FileStream fs = new FileStream("X:\\file.dat", FileMode.Open, FileAccess.Read);
byte[] writeArray = new byte[fs.Length];
fs.Read(writeArray, 0, System.Convert.ToInt32(fs.Length));
fs.Close();
ManualResetEvent manualEvent = new ManualResetEvent(false);
FileStream fStream = new FileStream("X:\\archive\file.dat", FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096, true);
Debug.Print("fStream was {0}opened asynchronously.", fStream.IsAsync ? "" : "not ");
IAsyncResult asyncResult = fStream.BeginWrite
(
writeArray,
0,
writeArray.Length,
new AsyncCallback(EndWriteCallback),
new State(fStream, writeArray, manualEvent)
);
This works, but performing
fs.Read(writeArray, 0, System.Convert.ToInt32(fs.Length)); essentially copies the file contents back to across the network
|
|
|
|
|
Out of curiosity, will File.Copy[^] not work for you?
Nevermind, just saw your other thread and you have already mentioned about the delay in File.Copy
|
|
|
|
|
What about File.Move ?
If you really want to copy, then something has to read the entire file.
|
|
|
|
|
Well, you have to first read it in order to copy it, so I doubt what you're asking is possible.
Cheers,
Vikram. (Got my troika of CCCs!)
|
|
|
|
|
I found an application (CodeDefender) that obfuscates unprotected .net binaries with empty strings. I tried the result on reflector and it was great!
|
|
|
|
|
Looks like an advertisement.
|
|
|
|