INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

Memory Management of VFP cursor

Memory Management of VFP cursor

(OP)
If in the cursor there are 2 fields with c(15) for 'uniqueId' and 'newUniqueId' and
* total no of fields in the cursor may exceed 50 in many cases &
* over 2 lac records
Current Scenario:
At present we have 15 users logged in and the cpu usage shows 27 gb ram being consumed and no. of users is expected to rise above 50.
Please tell me about the memory management in case of cursor taking into account
* memory allocaton ,
* rushmore optimization and
* how will it affect the overall performance?
Thank you.

RE: Memory Management of VFP cursor

It depends.

Rushmore needs memory per optimized clause and index usage, also the amount of RAM needed depends on the number of records of queried tables, number of queried tables and used fields, so you can predict knowing DBF sizes and exact SQL statements but not without. Get an understanding of the low-level Rushmore mechanism to calculate that, we can't do that for you. Rushmore bitmaps used to be combined with bitwise logic mean 1 bit per record per table per single clause, eg where firstname="A" and lastname="B" means two clauses, two bitmaps of records*1bit size later bit-anded. records here mean all records, not just records fetched, the final bitmap is used to decide what records to fetch, the build up, therefore, has a bit per record, even if some clause already is limiting it to one record anyway. But that calculation will just be the bitmaps, you also need memory for objects and caches, so the predictability of this is quite worthless not knowing the size of tables, too, including all fields. VFP does cache all files of a table; DBF, FPT, and CDX.

27GB is a nice terminal server, each VFP session will take 2GB at max. Since you have 15 users and there also is a session to maintain and perhaps other automated processes like office/outlook, I would just take 1GB of RAM per process, making use of 15GB of the 27GB and leaving the other 12GB for OS and other processes. See how it goes from there. 1GB should be sufficient for many things and VFP will not grab all 1GB at once anyway. See SYS(3054). If you have a bad performance and exceed memory usage, have a logging mechanism to find out what is causing so much memory consumption or even a memory leak of not freeing allocated memory. You can manually trigger garbage collection with SYS(1104) and you can look at allocated memory with SYS(1016). You might find any other reason for stalled processes, eg ActiveX usage, OLE automation. You're never alone on the system, too, and I don't only mean parallel user sessions with that.

Bye, Olaf.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Resources

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close