home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaDemoCD2.iso / ASCII / TEXTE / c.s.a.reviews / software / disk / FastCache < prev    next >
Encoding:
Internet Message Format  |  1994-06-02  |  19.7 KB

  1. Path: menudo.uh.edu!usenet
  2. From: Mike_Noreen@p14.anet.bbs.bad.se (Mike Noreen)
  3. Newsgroups: comp.sys.amiga.reviews
  4. Subject: REVIEW: FastCache version 1.0
  5. Followup-To: comp.sys.amiga.applications
  6. Date: 9 Jul 1993 01:48:04 GMT
  7. Organization: The Amiga Online Review Column - ed. Daniel Barrett
  8. Lines: 475
  9. Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator)
  10. Distribution: world
  11. Message-ID: <21iiok$k1b@menudo.uh.edu>
  12. Reply-To: Mike_Noreen@p14.anet.bbs.bad.se (Mike Noreen)
  13. NNTP-Posting-Host: karazm.math.uh.edu
  14. Keywords: cache, disks, shareware
  15.  
  16.  
  17.  
  18. PRODUCT NAME
  19.  
  20.     FastCache version 1.0
  21.  
  22.     [MODERATOR'S NOTE:  This review was updated on July 15, 1993.
  23.     -Dan]
  24.  
  25.  
  26. BRIEF DESCRIPTION
  27.  
  28.     FastCache is a program for speeding up your disk access.  It is a
  29. fully associate shareware disk-cache which features prefetch and write-back.
  30.  
  31.  
  32. AUTHOR/COMPANY INFORMATION
  33.  
  34.     Name:        Philip D'Ath
  35.     Address:    9 Elmwood Crescent
  36.             Pukete, Hamilton
  37.             New Zealand
  38.  
  39.     E-mail:        pid@waikato.ac.nz
  40.  
  41.  
  42. SHAREWARE FEE
  43.  
  44.     You may use the program freely for a period of three months.  If you
  45. continue to use it after that period, you are requested to send $20 to the
  46. author, payable in either New Zealand, Australian or American dollars.
  47.  
  48.  
  49. SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS
  50.  
  51.  
  52.     HARDWARE
  53.  
  54.         At least 256K free RAM is recommended.  FastCache uses RAM
  55.         to speed up disk read/write operations, and will not give
  56.         much increase in disk performance if the cache is smaller
  57.         than this.  If you cannot spare this much RAM, then
  58.         FastCache probably isn't for you.
  59.  
  60.           FastCache is supplied in two flavours: one for 68000-based
  61.         machines such as the Amiga 500, and one for 68030-based
  62.         machines such as the Amiga 3000.
  63.  
  64.     SOFTWARE
  65.  
  66.         FastCache was designed to be used under AmigaDOS 2.0, and
  67.         seems to work well under AmigaDOS 3.0. It MIGHT work under
  68.         AmigaDOS 1.3, but it's not guaranteed.
  69.  
  70.  
  71. COPY PROTECTION
  72.  
  73.     None.
  74.  
  75.  
  76. MACHINE USED FOR TESTING
  77.  
  78.     Amiga 3000-25
  79.     2 MB Chip RAM, 4MB Static Column Fast RAM
  80.     Kickstart v40.9, Workbench v40.4
  81.     DEC RZ24 hard disk, 199MB formatted, 64KB onboard cache, 19ms seek
  82.      time.
  83.  
  84.  
  85. REVIEW
  86.  
  87.     The reason I tested FastCache was because I needed to speed up the
  88. handling of mail on my system.  I had earlier tested a public domain
  89. disk cache called SmartDisk and had not been terribly impressed.  FastCache,
  90. however, had features which made it worth checking out.  Here's its feature
  91. list from its manual:
  92.  
  93.     * Fully associate cache (one of the best algorithms)
  94.     * LRU cache replacement policy (one of the best)
  95.     * Can handle multiple drives
  96.     * *Should* be able to handle removable media
  97.     * All cache settings are determined at run time
  98.     * Optional write retention
  99.     * Does not require large continuous chunks of memory
  100.     * Uses a hashing system to locate date (one of the best)
  101.     * Performs both forward and reverse prefetching
  102.     * Will utilize the blitter to move data, if possible
  103.  
  104.     Having gotten this far, I think most people will agree that it is
  105. high time for a short explanation of what a disk cache is, how it works, and
  106. what all these fancy terms and abbreviations mean.  (Many thanks to John C.
  107. Chu for helping me out with this!)
  108.  
  109.  
  110. WHAT IS A DISK CACHE?
  111.  
  112.     RAM is faster than the disks on your computer.  A cache takes
  113. advantage of this fact to speed up read (and sometimes write) operations
  114. that use your disks.  Any data read by the computer is stored in the cache,
  115. so that if the data is used again, it is read from the cache (in RAM)
  116. instead of the cached device (the disk).
  117.  
  118.     From the above explanation, note that information is read from the
  119. cache only if it is already IN the cache -- that is, the second (or later)
  120. time that it is read.  However, a cache can also speed up the initial read
  121. by using "Prefetch."  This takes advantage of the fact that it's faster to
  122. read data in large chunks rather than in little pieces.  Prefetch means that
  123. if the computer asks for block N from the hard drive, it is put into the
  124. cache along with a number of subsequent blocks, anticipating their use.  So,
  125. when the computer has processed block N, and asks for block N+1, it is
  126. already in the cache.  On a fast, unfragmented hard disk, prefetch can give
  127. huge boosts in speed, while on a heavily fragmented disk it can lower
  128. performance.
  129.  
  130.     Some caches, like FastCache, may optionally cache write operations
  131. as well as read operations.  While this means less disk contention and faster
  132. writes, it also means that a crash or reset before the cache is flushed will
  133. result in LOSS OF DATA!  For this reason, I do not recommend write retention
  134. (write-back).  Sooner or later, one IS going to lose data if one uses
  135. write-back, so do *NOT* use write-back on important files.  Also, writes to
  136. the disk which are verified (like formatting) will be verified against the
  137. cache, and so is useless.  Caching writes is DANGEROUS STUFF!
  138.  
  139.     [MODERATOR'S NOTE:  The author of FastCache, Philip D'Ath, says the
  140.     following about verifying writes against the cache:
  141.  
  142.             "...you mentioned about programs who try to verify
  143.         data essentially wasting their time.  This will not be the
  144.         case if the program issues any kind of flush command (like
  145.         CMD_FLUSH).  FastCache honours all such requests, by
  146.         flushing its entire cache, for this exact reason.
  147.             If any program does a verify operation now, without
  148.         issuing a flush command, then it is probably already broken,
  149.         as many KS2 devices buffer at least a track already."]
  150.  
  151.     Time to get technical!  (Non-technical users can safely skip ahead
  152. to "INSTALLATION" below.)  Basically, there are three types of disk caches:
  153.  
  154.     * Direct Map Caches.  The most primitive form, easy to implement and
  155.     with low processing overhead; but since it is "unintelligent", large
  156.     parts of the cache memory will be wasted.
  157.  
  158.     * Set Associative Caches.  A set associative cache consists of some
  159.     number of small Direct Map caches combined.  While being smarter
  160.     about memory usage than a Direct Map cache, a Set Associative cache
  161.     is less efficient than a Fully Associative cache (described below),
  162.     and it requires more processing than a Direct Map cache.  Examples
  163.     of Set Associative caches are PowerCache and SmartDisk.
  164.  
  165.     * Fully Associative Cache.  The best and brightest of the caches.
  166.     Will not flush data until completely full; but as it is the most
  167.     complex of the caches, it is also the one which requires the most
  168.     processing overhead and is the hardest to implement.  FastCache is
  169.     of this kind.
  170.  
  171.     When the cache is full, it has to flush old data to be able to cache
  172. new, and this can be done in a number of ways.  FastCache uses an algorithm
  173. called LRU, Least Recently Used, meaning that the information least recently
  174. accessed is flushed before more recently accessed information.
  175.  
  176.  
  177. INSTALLATION
  178.  
  179.     Installation is easy.  You simply put the appropriate FastCache
  180. version (68000 or 68030) where you want it, edit its ToolTypes to fit your
  181. system, and double-click on its icon.  It's runnable from the shell also,
  182. with arguments instead of ToolTypes.  Setting the ToolTypes is no problem if
  183. you know a little about your hard disk; in my case, as on all A3000's, the
  184. device name is "scsi.device" (case sensitive!), and unit number is 6.  On
  185. other controllers, you will have to check what your device driver is called
  186. (like GVPscsi.device for GVP controllers), and what unit number your hard
  187. drive is (usually 0).
  188.  
  189.  
  190. BENCHMARKS
  191.  
  192.     The wonderful bit about reviewing something like FastCache is that
  193. its performance can be MEASURED OBJECTIVELY!  Therefore, you are now going to
  194. be treated to a number of impressive benchmarks, all obtained with DiskSpeed
  195. v4.2.  Here is my system with no caching:
  196.  
  197.  
  198. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  199. ------------------------------------------------------------
  200. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  201. Device:  dh0:    Buffers: 200
  202. Comments: My setup, without any disk cache. Test partition is 52Mb, 40% full.
  203.  
  204. No CPU Speed Rating -- CPU % not available.
  205.  
  206. Testing directory manipulation speed.
  207. File Create:          147 files/sec
  208. File Open:            129 files/sec
  209. Directory Scan:       221 files/sec
  210. File Delete:          322 files/sec
  211.  
  212. Seek/Read:            784 seeks/sec
  213.  
  214. Testing with a 512 byte, MEMF_FAST, LONG-aligned buffer.
  215. Create file:        28864 bytes/sec
  216. Write to file:      28480 bytes/sec
  217. Read from file:    108928 bytes/sec
  218.  
  219. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  220. Create file:       552909 bytes/sec
  221. Write to file:     791497 bytes/sec
  222. Read from file:    799219 bytes/sec
  223.  
  224.  
  225. It's not a speed-demon, but not too bad either.  Now here are results for
  226. my system running FastCache with a 512K cache:
  227.  
  228. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  229. ------------------------------------------------------------
  230. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  231. Device:  dh0:    Buffers: 200
  232. Comments: FastCache 512KB cache, default settings.
  233.  
  234. No CPU Speed Rating -- CPU % not available.
  235.  
  236. Testing directory manipulation speed.
  237. File Create:           76 files/sec
  238. File Open:            207 files/sec
  239. Directory Scan:       897 files/sec
  240. File Delete:          344 files/sec
  241.  
  242. Seek/Read:            606 seeks/sec
  243.  
  244. Testing with a 512 byte, MEMF_FAST, LONG-aligned buffer.
  245. Create file:       132480 bytes/sec
  246. Write to file:     132435 bytes/sec
  247. Read from file:    377984 bytes/sec
  248.  
  249. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  250. Create file:      1410065 bytes/sec
  251. Write to file:    2453564 bytes/sec
  252. Read from file:   3693550 bytes/sec
  253.  
  254.  
  255.     The above is FastCache with its default settings.  While it's
  256. noticeably faster than my plain system, it is not very impressive; apart from
  257. the write-caching, it's slower than SmartDisk. The cache is 512KB, with a
  258. LINE_SIZE (prefetch) of 4 blocks, NUM_LINES is 256, and ChipRAM is always
  259. used as cache-memory.
  260.  
  261.     So, we tweak some parameters and get:
  262.  
  263. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  264. ------------------------------------------------------------
  265. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  266. Device:  dh0:    Buffers: 200
  267. Comments: FastCache 512KB cache, after tweaking of parameters.
  268.  
  269. Testing directory manipulation speed.
  270. File Create:           89 files/sec
  271. File Open:            231 files/sec
  272. Directory Scan:       916 files/sec
  273. File Delete:          344 files/sec
  274.  
  275. Seek/Read:            761 seeks/sec
  276.  
  277. Testing with a 512 byte, MEMF_FAST, LONG-aligned buffer.
  278. Create file:       175808 bytes/sec
  279. Write to file:     214976 bytes/sec
  280. Read from file:    438400 bytes/sec
  281.  
  282. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  283. Create file:      1719508 bytes/sec
  284. Write to file:    3530118 bytes/sec
  285. Read from file:   5799936 bytes/sec
  286.  
  287.  
  288.     While the cache is still 512KB, I've changed the parameters. I've
  289. added the NO_CHIP ToolType, and changed the prefetch to 8 blocks.  The reason
  290. this improves performance is because my partition is fairly unfragmented.
  291. To keep the cache at a manageable size, I've halved the NUM_LINES to 128.
  292. This setting is pretty optimal on my setup.
  293.  
  294.     Now, let's increase the cache size:
  295.  
  296. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  297. ------------------------------------------------------------
  298. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  299. Device:  dh0:    Buffers: 200
  300. Comments: Num_Lines = 256, Line_Size = 16
  301.  
  302. Testing directory manipulation speed.
  303. File Create:           98 files/sec
  304. File Open:            210 files/sec
  305. Directory Scan:       900 files/sec
  306. File Delete:          384 files/sec
  307.  
  308. Seek/Read:            800 seeks/sec
  309.  
  310. Testing with a 512 byte, MEMF_FAST, LONG-aligned buffer.
  311. Create file:       202767 bytes/sec
  312. Write to file:     244874 bytes/sec
  313. Read from file:    540096 bytes/sec
  314.  
  315. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  316. Create file:      2386098 bytes/sec
  317. Write to file:    4455156 bytes/sec
  318. Read from file:   7733248 bytes/sec
  319.  
  320.  
  321.     This is as fast as it will go on my system.  Cache-size here is 2MB,
  322. but on systems with more memory it can undoubtedly go even faster.  The author
  323. claims performance will increase up to a cache size of about 10MB.
  324.  
  325.     How about floppy drives?  Here is what FastCache can do:
  326.  
  327. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  328. ------------------------------------------------------------
  329. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  330. Device:  df0:    Buffers: 10
  331. Comments: This is how fast a FLOPPY get with FastCache.
  332.  
  333. Testing directory manipulation speed.
  334. File Create:            6 files/sec
  335. File Open:            168 files/sec
  336. Directory Scan:       926 files/sec
  337. File Delete:          416 files/sec
  338.  
  339. Seek/Read:            < 1 seeks/sec
  340.  
  341. Testing with a 512 byte, MEMF_FAST, LONG-aligned buffer.
  342. Create file:          285 bytes/sec
  343. Write to file:       6657 bytes/sec
  344. Read from file:    366080 bytes/sec
  345.  
  346. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  347. Create file:       381763 bytes/sec
  348. Write to file:     141241 bytes/sec
  349. Read from file:    978591 bytes/sec
  350.  
  351.  
  352.     Considering a floppy normally has a peak performance of about
  353. 20KB/sec, these are pretty amazing results.  I think the figures here are a
  354. VERY misleading, though; in normal usage, the increase would be nowhere NEAR
  355. this huge.  You will NOT get hard disk performance out of a floppy even with
  356. a disk cache, no matter what.  The settings were the same as for my 512KB
  357. tweaked cache, except the unit number was 0 (for df0:) and the device was
  358. trackdisk.device.
  359.  
  360.  
  361. DOCUMENTATION
  362.  
  363.     FastCache comes with a text file explaining the usage and various
  364. ToolTypes/arguments of FastCache. If you have had a little experience with
  365. your Amiga, you will not have any difficulties with the documentation.  (If
  366. you're a REAL novice to the Amiga, it might be wise to stay clear of
  367. potentially dangerous software like disk caches anyway.)
  368.  
  369.  
  370. LIKES AND DISLIKES
  371.  
  372.     Well, I think it's a great program.  Although I've heard complaints
  373. about FastCache not running, or crashing and causing data losses, it has not
  374. caused me any problems during these two weeks.  If it continues to behave
  375. this well, I will certainly register for the program.  My mail-handling now
  376. takes only a few minutes, as compared to 15-20 minutes before I got
  377. FastCache.
  378.  
  379.     Having said this, I'd like to point out that there ARE things that
  380. could be improved in the program.  Most important would be a less awkward
  381. way of configuring FastCache.  If it could pop up a window with gadgets for
  382. all settings like its competitor PowerCache does, that would be great.
  383. Also, I'd like a program which generated statistics about the cache
  384. (hit-rate, usage, etc.).
  385.  
  386.  
  387. COMPARISON TO OTHER SIMILAR PRODUCTS
  388.  
  389.     There are a bunch of other disk caches out.  I will try to give a
  390. short rundown on those here, and add short benchmarks where possible.
  391.  
  392. * SmartDisk.  This is a 8-way set-associate disk cache.  It does not support
  393. multiple devices.  The version I've tested is 1.41.  It has a fixed size of
  394. 512KB, and the parameters cannot be changed. Since it does not do write-back,
  395. only reads are sped up. Generally very stable. Very poor documentation.
  396. Public domain; author David Le Blanc.
  397.  
  398. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  399. ------------------------------------------------------------
  400. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  401. Device:  dh0:    Buffers: 200
  402. Comments: SmartDisk v1.41
  403.  
  404. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  405. Create file:       411578 bytes/sec
  406. Write to file:     652099 bytes/sec
  407. Read from file:   5701632 bytes/sec
  408.  
  409.  
  410. * PowerCache.  Another set-associate cache.  Supports multiple devices.
  411. It's released under the concept of shareware, but is so badly crippled that
  412. it is hard to test.  It is, however, probably faster than FastCache, and far
  413. easier to configure.  A word of caution: PowerCache v37.46e has a few bugs
  414. and causes Enforcer hits when its window is opened.  I'd stay away from ANY
  415. program that causes Enforcer hits; wait for a bug-fixed version instead.  The
  416. documentation is outstanding.  Shareware; registration fee is $20US, or the
  417. equivalent. A fine disk cache indeed. Author: Michael Berg.
  418.  
  419.     Here is how PowerCache performed on my stock system:
  420.  
  421. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  422. ------------------------------------------------------------
  423. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  424. Device:  dh0:    Buffers: 200
  425. Comments: PowerCache v37.45e; cache size approximately 660KB.
  426.  
  427. Testing directory manipulation speed.
  428. File Create:          114 files/sec
  429. File Open:            209 files/sec
  430. Directory Scan:       707 files/sec
  431. File Delete:          370 files/sec
  432.  
  433. Seek/Read:            901 seeks/sec
  434.  
  435. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  436. Create file:      3899392 bytes/sec
  437. Write to file:    6946816 bytes/sec
  438. Read from file:   6979584 bytes/sec
  439.  
  440.     And now, here is PowerCache with a 10*32*8 cache setting:
  441.  
  442. MKSoft DiskSpeed 4.2  Copyright - 1989-92 MKSoft Development
  443. ------------------------------------------------------------
  444. CPU: 68030  AmigaOS Version: 40.9  Normal Video DMA
  445. Device:  dh0:    Buffers: 200
  446. Comments: PowerCache tweaked slightly. Large (1.3MB) cache.
  447.  
  448. Testing directory manipulation speed.
  449. File Create:          123 files/sec
  450. File Open:            208 files/sec
  451. Directory Scan:       717 files/sec
  452. File Delete:          370 files/sec
  453.  
  454. Seek/Read:            900 seeks/sec
  455.  
  456. Testing with a 262144 byte, MEMF_FAST, LONG-aligned buffer.
  457. Create file:      4620288 bytes/sec
  458. Write to file:    8060928 bytes/sec
  459. Read from file:   8093696 bytes/sec
  460.  
  461.     This is very impressive speed.  If properly bug-fixed and less
  462. crippled, this program would be the best shareware disk cache available.
  463.  
  464.  
  465. BUGS
  466.  
  467.     Unfortunately, there seem to be bugs or incompatibilities in
  468. FastCache.  It does not run at all on some systems, on others it LOWERS
  469. throughput, and on some it runs fine until it one day crashes and causes
  470. loss of data.  Possibly this is not FastCache's fault (a misbehaved program
  471. which does a write to a portion of the memory allocated to FastCache would
  472. cause corrupt data), but equally likely it is.  Anyway, if you do not use
  473. write-back you will not lose data, so stay safe and disable that feature if
  474. you cannot afford to have files destroyed.  This is sound advice and goes
  475. for ALL disk caches which can do write-back.
  476.  
  477.  
  478. FUTURE PLANS
  479.  
  480.     According to the author, the following features are planned for
  481. future versions of FastCache:
  482.  
  483.     - GUI.
  484.     - Stats-program.
  485.     - Complete rewrite of FastCache, with time critical sections done in
  486.       assembly.
  487.     - Buffer for small writes, to speed up small write operations.
  488.     - AREXX port.
  489.     - Ability to specify multiple devices to cache (ie: you could specify
  490.       that trackdisk.device 0 and 1 and scsi.device 6 should be cached,
  491.       where the most used device will get most of the cache, resulting
  492.       in more efficient use of memory when multiple devices are cached).
  493.  
  494.  
  495. CONCLUSIONS
  496.  
  497.     Anyone who moves lots of little files, scans large directories, has
  498. a slow hard drive, handles mail, or reads large data files from disk would
  499. probably benefit from a disk cache.  At present, I'd have to recommend
  500. FastCache or SmartDisk over the others.  It's true that FastCache does have
  501. problems on some systems, but it runs beautifully for me and is not
  502. crippled, so you can really try it out under the three trial months you are
  503. allowed before registering.  SmartDisk is pretty limited, but is free, and
  504. has no bugs known to me.  If PowerCache gets properly debugged, it will be
  505. the best shareware disk cache, but until then I don't feel I can recommend
  506. it.
  507.  
  508.     If stability and safety is REALLY an issue, you might wish to check
  509. out the commercial disk caches.  I can't really say if they're good or not,
  510. as I've not used them, but generally commercial software's more stable than
  511. its public domain or shareware counterparts.
  512.  
  513.  
  514. MVH: Mike Noreen       InterNet: radharc@p14.anet.bbs.bad.se                
  515.                         FidoNet: 2:201/411.14
  516.  
  517.  
  518. ---
  519.  
  520.    Daniel Barrett, Moderator, comp.sys.amiga.reviews
  521.    Send reviews to:    amiga-reviews-submissions@math.uh.edu
  522.    Request information:    amiga-reviews-requests@math.uh.edu
  523.    Moderator mail:    amiga-reviews@math.uh.edu
  524.    Anonymous ftp site:  math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews
  525.