Jump to content











Photo
- - - - -

ImDisk 2.0


  • Please log in to reply
9 replies to this topic

#1 v77

v77

    Silver Member

  • Team Reboot
  • 602 posts
  •  
    France

Posted 16 May 2015 - 09:54 PM

Let's start a new topic for this baby. :)

Installed in a virtual machine with Windows 8.1 x64. imdisk.cpl of the SysWOW64 folder works but not the one of System32. It simply does nothing.

I made some benchmarks without the parallel I/O feature. For my "RamDyn": no significant change.
Another one for a static ramdisk: small slowdown on sequential read and write, and no significant change on the rest.

I wanted to test -o par in command line, but it says "incorrect parameter" (in my language).



#2 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1448 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 16 May 2015 - 10:22 PM

Let's start a new topic for this baby. :)

 
:good:
 

Installed in a virtual machine with Windows 8.1 x64. imdisk.cpl of the SysWOW64 folder works but not the one of System32. It simply does nothing.

Yes, I had missed exporting the function that is needed for Control Panel applets. Fixed now, imdisk.cpl is now build 2.0.0.56. Simply reinstall and it should start working again!
 

I made some benchmarks without the parallel I/O feature. For my "RamDyn": no significant change.

Practically nothing has changed for user mode proxy communication or virtual memory, they still need to be serialized into a queue first and handled by a passive level worker thread that can access paged memory and wait on event objects and similar. The new code paths are used when there is another driver below to send I/O requests to.
 

Another one for a static ramdisk: small slowdown on sequential read and write, and no significant change on the rest.

What tool did you use to measure this? I have used a few tools to test this and most of them show either similar or slightly slower random access speeds but significantly faster large sequential access. It seems that particularly tools that support testing more than one disk access simultaneously find the new version faster. But then, it is also obvious that like with most tests of RAM disk software the test tools usually get too high results because of memory caching and similar that tricks the tools to report higher speeds than you will likely see in real life.

 

In "real life" I have used this now for my 6 GB RAM disk on my 2012 R2 server. It seems more responsive in some way and also uses less CPU for the RAM disk accesses. The reason is probably that the drivers can now handle several large I/O requests simultaneously while the old version had to queue up requests, even when the requests were for several MB each. But this is not easily measured in any way and it would probably be easy to find some specific scenario where it is actually slower now.

 

I have a few more ideas about how to further improve AWEAlloc speed though, so it might happen that I do a few more things with it before some kind of final release!
 

I wanted to test -o par in command line, but it says "incorrect parameter" (in my language).

You can only use -o par with file-type virtual disks, not proxy or virtual memory. I have written some notes about this and some other restrictions for it in the help text that shows with imdisk --help.

 

Thanks for testing!

 



#3 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 16 May 2015 - 10:31 PM

 I have written some notes about this and some other restrictions for it in the help text that shows with imdisk --help.

 

If I may correct your English :w00t: :ph34r: you mean "the help text that quickly scrolls away with imdisk --help" :whistling:

 

The text that shows is the one that should show when you type imdisk --help | more but that actually needs imdisk --help 2>&1 | more

 

(or has this behaviour in previous versions changed in this release? :unsure: )

 

:duff:

Wonko



#4 Olof Lagerkvist

Olof Lagerkvist

    Gold Member

  • Developer
  • 1448 posts
  • Location:Borås, Sweden
  •  
    Sweden

Posted 16 May 2015 - 10:37 PM

If I may correct your English :w00t: :ph34r: you mean "the help text that quickly scrolls away with imdisk --help" :whistling:
 
The text that shows is the one that should show when you type imdisk --help | more but that actually needs imdisk --help 2>&1 | more


I know, I know...

Or, why not:
imdisk --help 2> imdisk.txt

notepad imdisk.txt
 

But then I could also distribute a separate imdisk.txt in a similar way as I do with strarc. Could be something to consider actually.

 

(or has this behaviour in previous versions changed in this release? :unsure: )


Nope. :blush: ;)



#5 v77

v77

    Silver Member

  • Team Reboot
  • 602 posts
  •  
    France

Posted 16 May 2015 - 10:48 PM

What tool did you use to measure this?

 

The same than you: CrystalDiskMark. But this was with virtual memory, not with awealloc. I wanted to test what you don't say. ;)

Just tested with awealloc, here is what I get:

 

ImDisk 1.9.4:

           Sequential Read :  2163.261 MB/s
          Sequential Write :  2410.124 MB/s
         Random Read 512KB :  1710.071 MB/s
        Random Write 512KB :  1874.207 MB/s
    Random Read 4KB (QD=1) :    38.364 MB/s [  9366.2 IOPS]
   Random Write 4KB (QD=1) :    37.053 MB/s [  9046.0 IOPS]
   Random Read 4KB (QD=32) :    85.571 MB/s [ 20891.4 IOPS]
  Random Write 4KB (QD=32) :    82.944 MB/s [ 20250.0 IOPS]

ImDisk 2.0.0:

           Sequential Read :  4732.618 MB/s
          Sequential Write :  7484.855 MB/s
         Random Read 512KB :  3577.433 MB/s
        Random Write 512KB :  4566.379 MB/s
    Random Read 4KB (QD=1) :    92.999 MB/s [ 22704.9 IOPS]
   Random Write 4KB (QD=1) :    88.306 MB/s [ 21559.0 IOPS]
   Random Read 4KB (QD=32) :    89.515 MB/s [ 21854.2 IOPS]
  Random Write 4KB (QD=32) :    85.518 MB/s [ 20878.4 IOPS]

 

As you can see, there is a great improvement on 4KB requests.



#6 v77

v77

    Silver Member

  • Team Reboot
  • 602 posts
  •  
    France

Posted 16 May 2015 - 10:53 PM

If I may correct your English :w00t: :ph34r: you mean "the help text that quickly scrolls away with imdisk --help" :whistling:

 

The text that shows is the one that should show when you type imdisk --help | more but that actually needs imdisk --help 2>&1 | more

 

(or has this behaviour in previous versions changed in this release? :unsure: )

 

Don't you have a mouse to scroll the console? It works even on the prehistoric Windows XP... :whistling:



#7 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 May 2015 - 10:42 AM

Don't you have a mouse to scroll the console? It works even on the prehistoric Windows XP... :whistling:

Well it depends on how "tall" you have set the Command Console buffer.

A "default" window will be 25 lines high and - if I recall correctly - 50 or 100 lines buffer.

The text that imdisk --help outputs is more than 180 lines.

 

You really need to use "more" or write it to a text file, no problem of course :) but I would guess that quite a few of the kids out there would no be that much familiar with redirecting the "standard error" to "standard output" :unsure:.

 

:duff:

Wonko



#8 v77

v77

    Silver Member

  • Team Reboot
  • 602 posts
  •  
    France

Posted 17 May 2015 - 12:24 PM

By default, on XP as well as 8.1, there is 300 lines, and imdisk 2.0 only produces 248...

ImDisk describes 38 switches or options, that is, 6,53 lines per switch.
The next version of my ProxyCrypt produces 83 lines, for 24 switches or options, that is, about 3,46 lines per switch.

Finally, this reflects our respectives personalities... :)

 

That said, I agree that putting the help on standard output would be more standard.



#9 Wonko the Sane

Wonko the Sane

    The Finder

  • Advanced user
  • 16066 posts
  • Location:The Outside of the Asylum (gate is closed)
  •  
    Italy

Posted 17 May 2015 - 01:40 PM

ImDisk describes 38 switches or options, that is, 6,53 lines per switch.
The next version of my ProxyCrypt produces 83 lines, for 24 switches or options, that is, about 3,46 lines per switch.

Finally, this reflects our respectives personalities... :)

Well this is what is called in jargon sterile statistics, and which I call meaningless numbers.

 

I am not familiar with ProxyCrypt, but I can comment a little on IMDISK.

 

The issue with this kind of tools (which have some common points with some Linux utilities and with related "man" pages) is that they have way too many possible switches/parameters (mind you all nice and *needed*) that can be confusing, often because when combined are leading to an incorrect command line or to an undesired input, as well some "objects" are not explicited and there is possible confusion between actual commands and parameters to the command.

 

As an example this snippet:

 

-m mountpoint
Specifies a drive letter or mount point for the new virtual disk, the
virtual disk to query or the virtual disk to remove. When creating a
new virtual disk you can specify #: as mountpoint in which case the
first unused drive letter is automatically used.

 

which could be however "lengthened" to:

-m mountpoint
When creating a new virtual disk with the -a command specifies a

mount point or a drive letter, the special value  #: means

first available drive letter. When used with the -d or -l commands

specifies the mount point of the virtual disk to be detached or queried.

actually describes fully the option, because it talks of objects that the user knows or should know (mount point or drive letter), while this one:

 

-u unit
Along with -a, request a specific unit number for the ImDisk device
instead of automatic allocation. Along with -d or -l specifies the
unit number of the virtual disk to remove or query.

 

makes me cringe every time I read it, because it talks of objects that are not in the "dictionary" ("unit number" and "ImDisk device") and then changes it's own definition as the unit number (which was first attributed to the "ImDisk device") suddenly becomes attributed to the "virtual disk".

And nowhere I can find there is the info that unit is a number starting from 0, that if the -u unit is omitted with the -a command it will get first available number, etc. etc.

 

I do know that I am picky :w00t: :ph34r: and that writing clear, helpful text is among the most difficult things to do :(, this is not intended as a pointless critique, only an attempt to highlight possible critical parts often common to many other programs that have these many options.

 

Sometimes it is very difficult to have "consistent" naming, the -a command "attaches and configures" which is something that is normally called "mounting" or "creating" (in the help text also as "creating"), the -d "detaches" (but in the help text this is called "remove") the -l "lists" or "displays details" (but in the help text this is called "query").

 

Besides the "basic" command line --help output (which may at the most represent a quick reminder for someone that already knows very well the syntax) I find that IMDISK does deserves (IMHO) a separate help.txt providing, additionally to the mere explanation of the single switches various examples of usage of the combined switches and a definition of the terms used.

 

:duff:

Wonko



#10 v77

v77

    Silver Member

  • Team Reboot
  • 602 posts
  •  
    France

Posted 17 May 2015 - 03:46 PM

Statistics are sterile only for those who don't understand their meaning. -_-
I spent a lot of time to reduce the size of my syntax help. It's not only for saving some bytes...

Never mind. I am really not favourable to a separate help file. But for a big syntax help, there is another solution: providing by default a summary, and with a switch giving the full help.
Something like:
 

Control program for the ImDisk Virtual Disk Driver.

For complete syntax help, type imdisk -h or imdisk --help
For copyrights and credits, type imdisk --version

Syntax:
imdisk -a -t type -m mountpoint [-n] [-o opt1[,opt2 ...]] [-f|-F file]
       [-s size] [-b offset] [-v partition] [-S sectorsize] [-u unit]
       [-x sectors/track] [-y tracks/cylinder] [-p "format-parameters"] [-P]
imdisk -d|-D [-u unit | -m mountpoint] [-P]
imdisk -R -u unit
imdisk -l [-u unit | -m mountpoint]
imdisk -e [-s size] [-o opt1[,opt2 ...]] [-u unit | -m mountpoint]

 






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users