Performance metrics - some early conclusions

Ed Kleban Ed at Kleban.com
Wed Nov 30 13:32:36 CST 2005




On 11/30/05 1:03 PM, "Ruslan Zasukhin" <sunshine at public.kherson.ua> wrote:

> On 11/30/05 7:16 PM, "Ed Kleban" <Ed at Kleban.com> wrote:
> 
>>>> Sorry. I don't get it.  Why must SetBlank make copies of old values?  It
>>>> copies what values from where and places them where?
>>> 
>>> All in RAM.
>> 
>> Yes, but from where in RAM (serving what purpose) to where else in RAM
>> (serving what other purpose)?
> 
> Ed,
> 
> Very easy !!!
> 
> Each Table have record buffer.
> And each Table have second record buffer for old values.
> 
 Ah ha!  The good old secret second record buffer we don't document trick.
How silly of me. I should have known.

Ok, that helps a bit.  We now have more cards on the table for us all to
see.  I still have the same question:

>> Yes, but from where in RAM (serving what purpose) to where else in RAM
>> (serving what other purpose)?
> 

I'm afraid I still need more help connecting the dots here because I still
don't understand why the following are true:
 
> 
> It must copy them to be able execute UpdateRecord()
> 
> It must because we need OLD values to update index.

Presumably if I'm going to change the values in the memory buffer with
SetBlank, I've already stored any new values I care about by having already
performed a UpdateRecord.... or stated another way as a question:

Why would I ever want to do SetBlanks without first having executed
UpdateRecord() if I care about the current memory buffer values?   Wouldn't
it be foolish for me to do this?  Or is the (undocumented) case that by
definition and intent SetBlank always first does an UpdateRecord before
blanking the memory buffer unless you specify forAdd so that you don't
accidentily screw yourself by being foolish?

 




More information about the Valentina mailing list