Commit 0a349536 authored by Han-Wen Nienhuys's avatar Han-Wen Nienhuys

Split off benchmarking stuff into benchmark/ .

Add a gotest benchmark running off a synthetic stat-only filesystem.
parent a964aa5c
...@@ -3,7 +3,7 @@ set -eux ...@@ -3,7 +3,7 @@ set -eux
rm -f fuse/version.gen.go rm -f fuse/version.gen.go
for d in fuse zipfs unionfs \ for d in fuse benchmark zipfs unionfs \
example/hello example/loopback example/zipfs \ example/hello example/loopback example/zipfs \
example/bulkstat example/multizip example/unionfs \ example/bulkstat example/multizip example/unionfs \
example/autounionfs ; \ example/autounionfs ; \
...@@ -15,3 +15,4 @@ for d in fuse zipfs unionfs ...@@ -15,3 +15,4 @@ for d in fuse zipfs unionfs
do do
(cd $d && gotest ) (cd $d && gotest )
done done
# Use "gomake install" to build and install this package.
include $(GOROOT)/src/Make.inc
TARG=github.com/hanwen/go-fuse/benchmark
GOFILES=benchmark.go
include $(GOROOT)/src/Make.pkg
package fuse
// Routines for benchmarking fuse.
import (
"fmt"
"math"
"os"
"regexp"
"sort"
"time"
)
// Used for benchmarking. Returns milliseconds.
func BulkStat(parallelism int, files []string) float64 {
todo := make(chan string, len(files))
dts := make(chan int64, parallelism)
allStart := time.Nanoseconds()
fmt.Printf("Statting %d files with %d threads\n", len(files), parallelism)
for i := 0; i < parallelism; i++ {
go func() {
for {
fn := <-todo
if fn == "" {
break
}
t := time.Nanoseconds()
os.Lstat(fn)
dts <- time.Nanoseconds() - t
}
}()
}
for _, v := range files {
todo <- v
}
total := 0.0
for i := 0; i < len(files); i++ {
total += float64(<-dts) * 1e-6
}
allEnd := time.Nanoseconds()
avg := total / float64(len(files))
fmt.Printf("Elapsed: %f sec. Average stat %f ms\n",
float64(allEnd-allStart)*1e-9, avg)
return avg
}
func AnalyzeBenchmarkRuns(times []float64) {
sorted := times
sort.Float64s(sorted)
tot := 0.0
for _, v := range times {
tot += v
}
n := float64(len(times))
avg := tot / n
variance := 0.0
for _, v := range times {
variance += (v - avg) * (v - avg)
}
variance /= n
stddev := math.Sqrt(variance)
median := sorted[len(times)/2]
perc90 := sorted[int(n*0.9)]
perc10 := sorted[int(n*0.1)]
fmt.Printf(
"%d samples\n"+
"avg %.2f ms 2sigma %.2f "+
"median %.2fms\n"+
"10%%tile %.2fms, 90%%tile %.2fms\n",
len(times), avg, 2*stddev, median, perc10, perc90)
}
func RunBulkStat(runs int, threads int, sleepTime float64, files []string) (results []float64) {
runs++
for j := 0; j < runs; j++ {
result := BulkStat(threads, files)
if j > 0 {
results = append(results, result)
} else {
fmt.Println("Ignoring first run to preheat caches.")
}
if j < runs-1 {
fmt.Printf("Sleeping %.2f seconds\n", sleepTime)
time.Sleep(int64(sleepTime * 1e9))
}
}
return results
}
func CountCpus() int {
var contents [10240]byte
f, err := os.Open("/proc/stat")
defer f.Close()
if err != nil {
return 1
}
n, _ := f.Read(contents[:])
re, _ := regexp.Compile("\ncpu[0-9]")
return len(re.FindAllString(string(contents[:n]), 100))
}
package fuse
import (
"bufio"
"fmt"
"io/ioutil"
"log"
"os"
"github.com/hanwen/go-fuse/fuse"
"path/filepath"
"runtime"
"strings"
"testing"
"time"
)
var CheckSuccess = fuse.CheckSuccess
type StatFs struct {
fuse.DefaultFileSystem
entries map[string]*os.FileInfo
dirs map[string][]fuse.DirEntry
}
func (me *StatFs) add(name string, fi os.FileInfo) {
name = strings.TrimRight(name, "/")
_, ok := me.entries[name]
if ok {
return
}
me.entries[name] = &fi
if name == "/" || name == "" {
return
}
dir, base := filepath.Split(name)
dir = strings.TrimRight(dir, "/")
me.dirs[dir] = append(me.dirs[dir], fuse.DirEntry{Name: base, Mode: fi.Mode})
me.add(dir, os.FileInfo{Mode: fuse.S_IFDIR | 0755})
}
func (me *StatFs) GetAttr(name string) (*os.FileInfo, fuse.Status) {
e := me.entries[name]
if e == nil {
return nil, fuse.ENOENT
}
return e, fuse.OK
}
func (me *StatFs) OpenDir(name string) (stream chan fuse.DirEntry, status fuse.Status) {
log.Printf("OPENDIR '%v', %v %v", name, me.entries, me.dirs)
entries := me.dirs[name]
if entries == nil {
return nil, fuse.ENOENT
}
stream = make(chan fuse.DirEntry, len(entries))
for _, e := range entries {
stream <- e
}
close(stream)
return stream, fuse.OK
}
func NewStatFs() *StatFs {
return &StatFs{
entries: make(map[string]*os.FileInfo),
dirs: make(map[string][]fuse.DirEntry),
}
}
func setupFs(fs fuse.FileSystem, opts *fuse.FileSystemOptions) (string, func()) {
mountPoint := fuse.MakeTempDir()
state, _, err := fuse.MountFileSystem(mountPoint, fs, opts)
if err != nil {
panic(fmt.Sprintf("cannot mount %v", err)) // ugh - benchmark has no error methods.
}
// state.Debug = true
go state.Loop(false)
return mountPoint, func() {
err := state.Unmount()
if err != nil {
log.Println("error during unmount", err)
} else {
os.RemoveAll(mountPoint)
}
}
}
func TestNewStatFs(t *testing.T) {
fs := NewStatFs()
for _, n := range []string{
"file.txt", "sub/dir/foo.txt",
"sub/dir/bar.txt", "sub/marine.txt"} {
fs.add(n, os.FileInfo{Mode: fuse.S_IFREG | 0644})
}
wd, clean := setupFs(fs, nil)
defer clean()
names, err := ioutil.ReadDir(wd)
CheckSuccess(err)
if len(names) != 2 {
t.Error("readdir /", names)
}
fi, err := os.Lstat(wd + "/sub")
CheckSuccess(err)
if !fi.IsDirectory() {
t.Error("mode", fi)
}
names, err = ioutil.ReadDir(wd + "/sub")
CheckSuccess(err)
if len(names) != 2 {
t.Error("readdir /sub", names)
}
names, err = ioutil.ReadDir(wd + "/sub/dir")
CheckSuccess(err)
if len(names) != 2 {
t.Error("readdir /sub/dir", names)
}
fi, err = os.Lstat(wd + "/sub/marine.txt")
CheckSuccess(err)
if !fi.IsRegular() {
t.Error("mode", fi)
}
}
func BenchmarkThreadedStat(b *testing.B) {
b.StopTimer()
fs := NewStatFs()
wd, _ := os.Getwd()
// Names from OpenJDK 1.6
f, err := os.Open(wd + "/testpaths.txt")
CheckSuccess(err)
defer f.Close()
r := bufio.NewReader(f)
files := []string{}
for {
line, _, err := r.ReadLine()
if line == nil || err != nil {
break
}
fn := string(line)
files = append(files, fn)
fs.add(fn, os.FileInfo{Mode: fuse.S_IFREG | 0644})
}
log.Printf("Read %d file names", len(files))
if len(files) == 0 {
log.Fatal("no files added")
}
ttl := 0.1
opts := fuse.FileSystemOptions{
EntryTimeout: ttl,
AttrTimeout: ttl,
NegativeTimeout: 0.0,
}
wd, clean := setupFs(fs, &opts)
defer clean()
for i, l := range files {
files[i] = filepath.Join(wd, l)
}
log.Println("N = ", b.N)
threads := runtime.GOMAXPROCS(0)
results := TestingBOnePass(b, threads, ttl * 1.2, files)
AnalyzeBenchmarkRuns(results)
}
func TestingBOnePass(b *testing.B, threads int, sleepTime float64, files []string) (results []float64) {
runs := b.N + 1
for j := 0; j < runs; j++ {
if j > 0 {
b.StartTimer()
}
result := BulkStat(threads, files)
if j > 0 {
b.StopTimer()
results = append(results, result)
} else {
fmt.Println("Ignoring first run to preheat caches.")
}
if j < runs-1 {
fmt.Printf("Sleeping %.2f seconds\n", sleepTime)
time.Sleep(int64(sleepTime * 1e9))
}
}
return results
}
org/classpath/icedtea/pulseaudio/PulseAudioVolumeControl.java
org/classpath/icedtea/pulseaudio/ContextEvent.java
org/classpath/icedtea/pulseaudio/StreamSampleSpecification.java
org/classpath/icedtea/pulseaudio/PulseAudioMixerProvider.java
org/classpath/icedtea/pulseaudio/PulseAudioPlaybackLine.java
org/classpath/icedtea/pulseaudio/PulseAudioMixerInfo.java
org/classpath/icedtea/pulseaudio/PulseAudioLine.java
org/classpath/icedtea/pulseaudio/PulseAudioSourceDataLine.java
org/classpath/icedtea/pulseaudio/PulseAudioClip.java
org/classpath/icedtea/pulseaudio/SecurityWrapper.java
org/classpath/icedtea/pulseaudio/ContextListener.java
org/classpath/icedtea/pulseaudio/PulseAudioPort.java
org/classpath/icedtea/pulseaudio/PulseAudioDataLine.java
org/classpath/icedtea/pulseaudio/PulseAudioTargetDataLine.java
org/classpath/icedtea/pulseaudio/Debug.java
org/classpath/icedtea/pulseaudio/Stream.java
org/classpath/icedtea/pulseaudio/Operation.java
org/classpath/icedtea/pulseaudio/PulseAudioSourcePort.java
org/classpath/icedtea/pulseaudio/PulseAudioTargetPort.java
org/classpath/icedtea/pulseaudio/PulseAudioMixer.java
org/classpath/icedtea/pulseaudio/StreamBufferAttributes.java
org/classpath/icedtea/pulseaudio/EventLoop.java
org/w3c/dom/xpath/XPathEvaluator.java
org/w3c/dom/xpath/XPathException.java
org/w3c/dom/xpath/XPathNSResolver.java
org/w3c/dom/xpath/XPathNamespace.java
org/w3c/dom/xpath/XPathExpression.java
org/w3c/dom/xpath/XPathResult.java
org/w3c/dom/DOMConfiguration.java
org/w3c/dom/DOMException.java
org/w3c/dom/Node.java
org/w3c/dom/Document.java
org/w3c/dom/NamedNodeMap.java
org/w3c/dom/TypeInfo.java
org/w3c/dom/CharacterData.java
org/w3c/dom/stylesheets/LinkStyle.java
org/w3c/dom/stylesheets/StyleSheet.java
org/w3c/dom/stylesheets/StyleSheetList.java
org/w3c/dom/stylesheets/MediaList.java
org/w3c/dom/stylesheets/DocumentStyle.java
org/w3c/dom/html/HTMLMenuElement.java
org/w3c/dom/html/HTMLDocument.java
org/w3c/dom/html/HTMLTableColElement.java
org/w3c/dom/html/HTMLLabelElement.java
org/w3c/dom/html/HTMLOptionElement.java
org/w3c/dom/html/HTMLLegendElement.java
org/w3c/dom/html/HTMLHtmlElement.java
org/w3c/dom/html/HTMLMapElement.java
org/w3c/dom/html/HTMLParamElement.java
org/w3c/dom/html/HTMLBRElement.java
org/w3c/dom/html/HTMLLIElement.java
org/w3c/dom/html/HTMLBaseFontElement.java
org/w3c/dom/html/HTMLTableElement.java
org/w3c/dom/html/HTMLAnchorElement.java
org/w3c/dom/html/HTMLHRElement.java
org/w3c/dom/html/HTMLUListElement.java
org/w3c/dom/html/HTMLSelectElement.java
org/w3c/dom/html/HTMLTableRowElement.java
org/w3c/dom/html/HTMLDListElement.java
org/w3c/dom/html/HTMLDirectoryElement.java
org/w3c/dom/html/HTMLFrameElement.java
org/w3c/dom/html/HTMLTableSectionElement.java
org/w3c/dom/html/HTMLTableCellElement.java
org/w3c/dom/html/HTMLFontElement.java
org/w3c/dom/html/HTMLImageElement.java
org/w3c/dom/html/HTMLOptGroupElement.java
org/w3c/dom/html/HTMLBaseElement.java
org/w3c/dom/html/HTMLIsIndexElement.java
org/w3c/dom/html/HTMLFrameSetElement.java
org/w3c/dom/html/HTMLStyleElement.java
org/w3c/dom/html/HTMLTableCaptionElement.java
org/w3c/dom/html/HTMLInputElement.java
org/w3c/dom/html/HTMLFieldSetElement.java
org/w3c/dom/html/HTMLOListElement.java
org/w3c/dom/html/HTMLAreaElement.java
org/w3c/dom/html/HTMLIFrameElement.java
org/w3c/dom/html/HTMLQuoteElement.java
org/w3c/dom/html/HTMLMetaElement.java
org/w3c/dom/html/HTMLDOMImplementation.java
org/w3c/dom/html/HTMLHeadElement.java
org/w3c/dom/html/HTMLFormElement.java
org/w3c/dom/html/HTMLModElement.java
org/w3c/dom/html/HTMLPreElement.java
org/w3c/dom/html/HTMLButtonElement.java
org/w3c/dom/html/HTMLBodyElement.java
org/w3c/dom/html/HTMLDivElement.java
org/w3c/dom/html/HTMLCollection.java
org/w3c/dom/html/HTMLScriptElement.java
org/w3c/dom/html/HTMLParagraphElement.java
org/w3c/dom/html/HTMLObjectElement.java
org/w3c/dom/html/HTMLTitleElement.java
org/w3c/dom/html/HTMLAppletElement.java
org/w3c/dom/html/HTMLTextAreaElement.java
org/w3c/dom/html/HTMLHeadingElement.java
org/w3c/dom/html/HTMLLinkElement.java
org/w3c/dom/html/HTMLElement.java
org/w3c/dom/UserDataHandler.java
org/w3c/dom/bootstrap/DOMImplementationRegistry.java
org/w3c/dom/Comment.java
org/w3c/dom/Element.java
org/w3c/dom/traversal/TreeWalker.java
org/w3c/dom/traversal/DocumentTraversal.java
org/w3c/dom/traversal/NodeIterator.java
org/w3c/dom/traversal/NodeFilter.java
org/w3c/dom/DOMImplementationList.java
org/w3c/dom/DOMImplementationSource.java
org/w3c/dom/ProcessingInstruction.java
org/w3c/dom/DocumentFragment.java
org/w3c/dom/NodeList.java
org/w3c/dom/DOMStringList.java
org/w3c/dom/views/AbstractView.java
org/w3c/dom/views/DocumentView.java
org/w3c/dom/Entity.java
org/w3c/dom/ls/LSProgressEvent.java
org/w3c/dom/ls/LSSerializer.java
org/w3c/dom/ls/LSOutput.java
org/w3c/dom/ls/LSInput.java
org/w3c/dom/ls/LSSerializerFilter.java
org/w3c/dom/ls/LSParserFilter.java
org/w3c/dom/ls/LSParser.java
org/w3c/dom/ls/LSLoadEvent.java
org/w3c/dom/ls/LSException.java
org/w3c/dom/ls/DOMImplementationLS.java
org/w3c/dom/ls/LSResourceResolver.java
org/w3c/dom/CDATASection.java
org/w3c/dom/DOMErrorHandler.java
org/w3c/dom/ranges/RangeException.java
org/w3c/dom/ranges/Range.java
org/w3c/dom/ranges/DocumentRange.java
org/w3c/dom/Text.java
org/w3c/dom/DOMError.java
org/w3c/dom/DocumentType.java
org/w3c/dom/css/CSSFontFaceRule.java
org/w3c/dom/css/CSSUnknownRule.java
org/w3c/dom/css/CSSImportRule.java
org/w3c/dom/css/CSSValue.java
org/w3c/dom/css/CSSStyleDeclaration.java
org/w3c/dom/css/CSS2Properties.java
org/w3c/dom/css/CSSRule.java
org/w3c/dom/css/CSSValueList.java
org/w3c/dom/css/CSSPageRule.java
org/w3c/dom/css/CSSCharsetRule.java
org/w3c/dom/css/DocumentCSS.java
org/w3c/dom/css/Rect.java
org/w3c/dom/css/CSSStyleSheet.java
org/w3c/dom/css/Counter.java
org/w3c/dom/css/CSSRuleList.java
org/w3c/dom/css/ViewCSS.java
org/w3c/dom/css/ElementCSSInlineStyle.java
org/w3c/dom/css/RGBColor.java
org/w3c/dom/css/DOMImplementationCSS.java
org/w3c/dom/css/CSSPrimitiveValue.java
org/w3c/dom/css/CSSMediaRule.java
org/w3c/dom/css/CSSStyleRule.java
org/w3c/dom/Attr.java
org/w3c/dom/NameList.java
org/w3c/dom/events/EventListener.java
org/w3c/dom/events/Event.java
org/w3c/dom/events/MouseEvent.java
org/w3c/dom/events/EventTarget.java
org/w3c/dom/events/UIEvent.java
org/w3c/dom/events/DocumentEvent.java
org/w3c/dom/events/EventException.java
org/w3c/dom/events/MutationEvent.java
org/w3c/dom/EntityReference.java
org/w3c/dom/DOMLocator.java
org/w3c/dom/Notation.java
org/w3c/dom/DOMImplementation.java
org/xml/sax/ErrorHandler.java
org/xml/sax/DTDHandler.java
org/xml/sax/XMLReader.java
org/xml/sax/AttributeList.java
org/xml/sax/XMLFilter.java
org/xml/sax/ext/Attributes2Impl.java
org/xml/sax/ext/DeclHandler.java
org/xml/sax/ext/Attributes2.java
org/xml/sax/ext/DefaultHandler2.java
org/xml/sax/ext/Locator2.java
org/xml/sax/ext/LexicalHandler.java
org/xml/sax/ext/EntityResolver2.java
org/xml/sax/ext/Locator2Impl.java
org/xml/sax/helpers/ParserAdapter.java
org/xml/sax/helpers/LocatorImpl.java
org/xml/sax/helpers/XMLReaderAdapter.java
org/xml/sax/helpers/XMLFilterImpl.java
org/xml/sax/helpers/XMLReaderFactory.java
org/xml/sax/helpers/AttributeListImpl.java
org/xml/sax/helpers/AttributesImpl.java
org/xml/sax/helpers/NamespaceSupport.java
org/xml/sax/helpers/DefaultHandler.java
org/xml/sax/helpers/ParserFactory.java
org/xml/sax/helpers/NewInstance.java
org/xml/sax/SAXException.java
org/xml/sax/Locator.java
org/xml/sax/SAXParseException.java
org/xml/sax/HandlerBase.java
org/xml/sax/InputSource.java
org/xml/sax/EntityResolver.java
org/xml/sax/Parser.java
org/xml/sax/SAXNotSupportedException.java
org/xml/sax/SAXNotRecognizedException.java
org/xml/sax/ContentHandler.java
org/xml/sax/Attributes.java
org/xml/sax/DocumentHandler.java
org/relaxng/datatype/Datatype.java
org/relaxng/datatype/ValidationContext.java
org/relaxng/datatype/helpers/ParameterlessDatatypeBuilder.java
org/relaxng/datatype/helpers/DatatypeLibraryLoader.java
org/relaxng/datatype/helpers/StreamingValidatorImpl.java
org/relaxng/datatype/DatatypeBuilder.java
org/relaxng/datatype/DatatypeStreamingValidator.java
org/relaxng/datatype/DatatypeLibraryFactory.java
org/relaxng/datatype/DatatypeLibrary.java
org/relaxng/datatype/DatatypeException.java
org/ietf/jgss/Oid.java
org/ietf/jgss/GSSCredential.java
org/ietf/jgss/GSSException.java
org/ietf/jgss/GSSName.java
org/ietf/jgss/GSSContext.java
org/ietf/jgss/MessageProp.java
org/ietf/jgss/ChannelBinding.java
org/ietf/jgss/GSSManager.java
org/omg/PortableServer/ThreadPolicy.java
org/omg/PortableServer/ServantLocatorPackage/CookieHolder.java
org/omg/PortableServer/ForwardRequestHelper.java
org/omg/PortableServer/CurrentHelper.java
org/omg/PortableServer/ServantActivatorOperations.java
org/omg/PortableServer/ServantLocator.java
org/omg/PortableServer/POAHelper.java
org/omg/PortableServer/_ServantActivatorStub.java
org/omg/PortableServer/LifespanPolicy.java
org/omg/PortableServer/ServantActivator.java
org/omg/PortableServer/_ServantLocatorStub.java
org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java
org/omg/PortableServer/DynamicImplementation.java
org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.java
org/omg/PortableServer/ServantLocatorHelper.java
org/omg/PortableServer/ThreadPolicyValue.java
org/omg/PortableServer/ImplicitActivationPolicyValue.java
org/omg/PortableServer/THREAD_POLICY_ID.java
org/omg/PortableServer/IdUniquenessPolicyOperations.java
org/omg/PortableServer/RequestProcessingPolicyValue.java
org/omg/PortableServer/ServantRetentionPolicyOperations.java
org/omg/PortableServer/Servant.java
org/omg/PortableServer/ServantActivatorPOA.java
org/omg/PortableServer/ImplicitActivationPolicy.java
org/omg/PortableServer/Current.java
org/omg/PortableServer/POAOperations.java
org/omg/PortableServer/ForwardRequest.java
org/omg/PortableServer/portable/Delegate.java
org/omg/PortableServer/AdapterActivator.java
org/omg/PortableServer/IdAssignmentPolicyOperations.java
org/omg/PortableServer/LifespanPolicyOperations.java
org/omg/PortableServer/ThreadPolicyOperations.java
org/omg/PortableServer/POAManagerOperations.java
org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.java
org/omg/PortableServer/RequestProcessingPolicy.java
org/omg/PortableServer/ImplicitActivationPolicyOperations.java
org/omg/PortableServer/ServantLocatorPOA.java
org/omg/PortableServer/POA.java
org/omg/PortableServer/ServantActivatorHelper.java
org/omg/PortableServer/ServantRetentionPolicy.java
org/omg/PortableServer/POAManager.java
org/omg/PortableServer/IdAssignmentPolicyValue.java
org/omg/PortableServer/LifespanPolicyValue.java
org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java
org/omg/PortableServer/POAPackage/WrongAdapterHelper.java
org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.java
org/omg/PortableServer/POAPackage/WrongAdapter.java
org/omg/PortableServer/POAPackage/WrongPolicy.java
org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java
org/omg/PortableServer/POAPackage/AdapterNonExistentHelper.java
org/omg/PortableServer/POAPackage/WrongPolicyHelper.java
org/omg/PortableServer/POAPackage/InvalidPolicy.java
org/omg/PortableServer/POAPackage/NoServant.java
org/omg/PortableServer/POAPackage/ServantAlreadyActive.java
org/omg/PortableServer/POAPackage/ServantNotActive.java
org/omg/PortableServer/POAPackage/ObjectAlreadyActive.java
org/omg/PortableServer/POAPackage/ObjectNotActiveHelper.java
org/omg/PortableServer/POAPackage/ServantAlreadyActiveHelper.java
org/omg/PortableServer/POAPackage/NoServantHelper.java
org/omg/PortableServer/POAPackage/AdapterAlreadyExists.java
org/omg/PortableServer/POAPackage/ObjectNotActive.java
org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHelper.java
org/omg/PortableServer/POAPackage/ServantNotActiveHelper.java
org/omg/PortableServer/POAPackage/AdapterNonExistent.java
org/omg/PortableServer/IdUniquenessPolicy.java
org/omg/PortableServer/RequestProcessingPolicyOperations.java
org/omg/PortableServer/CurrentOperations.java
org/omg/PortableServer/POAManagerPackage/AdapterInactive.java
org/omg/PortableServer/POAManagerPackage/AdapterInactiveHelper.java
org/omg/PortableServer/POAManagerPackage/State.java
org/omg/PortableServer/AdapterActivatorOperations.java
org/omg/PortableServer/ServantManagerOperations.java
org/omg/PortableServer/CurrentPackage/NoContextHelper.java
org/omg/PortableServer/CurrentPackage/NoContext.java
org/omg/PortableServer/IdUniquenessPolicyValue.java
org/omg/PortableServer/ServantRetentionPolicyValue.java
org/omg/PortableServer/LIFESPAN_POLICY_ID.java
org/omg/PortableServer/ServantManager.java
org/omg/PortableServer/IdAssignmentPolicy.java
org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java
org/omg/PortableServer/ServantLocatorOperations.java
org/omg/Dynamic/Parameter.java
org/omg/stub/java/rmi/_Remote_Stub.java
org/omg/SendingContext/RunTime.java
org/omg/SendingContext/RunTimeOperations.java
org/omg/IOP/TAG_MULTIPLE_COMPONENTS.java
org/omg/IOP/ExceptionDetailMessage.java
org/omg/IOP/CodecFactoryHelper.java
org/omg/IOP/MultipleComponentProfileHelper.java
org/omg/IOP/ProfileIdHelper.java
org/omg/IOP/TaggedProfileHolder.java
org/omg/IOP/CodecOperations.java
org/omg/IOP/CodecPackage/TypeMismatchHelper.java
org/omg/IOP/CodecPackage/InvalidTypeForEncoding.java
org/omg/IOP/CodecPackage/FormatMismatchHelper.java
org/omg/IOP/CodecPackage/TypeMismatch.java
org/omg/IOP/CodecPackage/InvalidTypeForEncodingHelper.java
org/omg/IOP/CodecPackage/FormatMismatch.java
org/omg/IOP/ServiceContextListHolder.java
org/omg/IOP/IORHolder.java
org/omg/IOP/CodecFactoryOperations.java
org/omg/IOP/TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.java
org/omg/IOP/IOR.java
org/omg/IOP/MultipleComponentProfileHolder.java
org/omg/IOP/TransactionService.java
org/omg/IOP/TAG_JAVA_CODEBASE.java
org/omg/IOP/TaggedComponent.java
org/omg/IOP/TAG_CODE_SETS.java
org/omg/IOP/Encoding.java
org/omg/IOP/TaggedComponentHelper.java
org/omg/IOP/TaggedProfile.java
org/omg/IOP/ServiceIdHelper.java
org/omg/IOP/ServiceContextHolder.java
org/omg/IOP/TaggedComponentHolder.java
org/omg/IOP/ENCODING_CDR_ENCAPS.java
org/omg/IOP/ComponentIdHelper.java
org/omg/IOP/CodeSets.java
org/omg/IOP/ServiceContext.java
org/omg/IOP/IORHelper.java
org/omg/IOP/TaggedProfileHelper.java
org/omg/IOP/CodecFactory.java
org/omg/IOP/RMICustomMaxStreamFormat.java
org/omg/IOP/TAG_INTERNET_IOP.java
org/omg/IOP/ServiceContextHelper.java
org/omg/IOP/Codec.java
org/omg/IOP/TAG_POLICIES.java
org/omg/IOP/ServiceContextListHelper.java
org/omg/IOP/CodecFactoryPackage/UnknownEncodingHelper.java
org/omg/IOP/CodecFactoryPackage/UnknownEncoding.java
org/omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.java
org/omg/IOP/TAG_ORB_TYPE.java
org/omg/Messaging/SyncScopeHelper.java
org/omg/Messaging/SYNC_WITH_TRANSPORT.java
org/omg/CORBA/StringHolder.java
org/omg/CORBA/UnknownUserExceptionHolder.java
org/omg/CORBA/DynUnion.java
org/omg/CORBA/DynSequence.java
org/omg/CORBA/ServiceInformationHelper.java
org/omg/CORBA/TRANSIENT.java
org/omg/CORBA/ACTIVITY_REQUIRED.java
org/omg/CORBA/Principal.java
org/omg/CORBA/ParameterModeHelper.java
org/omg/CORBA/CurrentHelper.java
org/omg/CORBA/PolicyTypeHelper.java
org/omg/CORBA/PolicyError.java
org/omg/CORBA/VM_TRUNCATABLE.java
org/omg/CORBA/DoubleSeqHolder.java
org/omg/CORBA/ULongSeqHelper.java
org/omg/CORBA/INTERNAL.java
org/omg/CORBA/ValueBaseHolder.java
org/omg/CORBA/WCharSeqHelper.java
org/omg/CORBA/BAD_CONTEXT.java
org/omg/CORBA/UNKNOWN.java
org/omg/CORBA/WStringSeqHelper.java
org/omg/CORBA/BooleanSeqHolder.java
org/omg/CORBA/ORB.java
org/omg/CORBA/BAD_TYPECODE.java
org/omg/CORBA/CharHolder.java
org/omg/CORBA/CompletionStatusHelper.java
org/omg/CORBA/ULongLongSeqHolder.java
org/omg/CORBA/INV_POLICY.java
org/omg/CORBA/DATA_CONVERSION.java
org/omg/CORBA/VM_NONE.java
org/omg/CORBA/COMM_FAILURE.java
org/omg/CORBA/DataOutputStream.java
org/omg/CORBA/BAD_INV_ORDER.java
org/omg/CORBA/DomainManagerOperations.java
org/omg/CORBA/TypeCodePackage/Bounds.java
org/omg/CORBA/TypeCodePackage/BadKind.java
org/omg/CORBA/ARG_OUT.java
org/omg/CORBA/IntHolder.java
org/omg/CORBA/PolicyOperations.java
org/omg/CORBA/CTX_RESTRICT_SCOPE.java
org/omg/CORBA/ValueMember.java
org/omg/CORBA/PolicyListHelper.java
org/omg/CORBA/StringSeqHolder.java
org/omg/CORBA/ObjectHolder.java
org/omg/CORBA/FloatSeqHolder.java
org/omg/CORBA/NO_RESOURCES.java
org/omg/CORBA/FREE_MEM.java
org/omg/CORBA/NO_IMPLEMENT.java
org/omg/CORBA/ULongSeqHolder.java
org/omg/CORBA/TIMEOUT.java
org/omg/CORBA/PolicyErrorCodeHelper.java
org/omg/CORBA/BAD_POLICY.java
org/omg/CORBA/AnyHolder.java
org/omg/CORBA/LongSeqHolder.java
org/omg/CORBA/NVList.java
org/omg/CORBA/INV_IDENT.java
org/omg/CORBA/VersionSpecHelper.java
org/omg/CORBA/IRObject.java
org/omg/CORBA/DynamicImplementation.java
org/omg/CORBA/PolicyListHolder.java
org/omg/CORBA/StringValueHelper.java
org/omg/CORBA/SetOverrideType.java
org/omg/CORBA/DynFixed.java
org/omg/CORBA/CharSeqHolder.java
org/omg/CORBA/OBJECT_NOT_EXIST.java
org/omg/CORBA/INV_FLAG.java
org/omg/CORBA/BAD_QOS.java
org/omg/CORBA/SetOverrideTypeHelper.java
org/omg/CORBA/DefinitionKind.java
org/omg/CORBA/TCKind.java
org/omg/CORBA/NameValuePairHelper.java
org/omg/CORBA/Bounds.java
org/omg/CORBA/UShortSeqHolder.java
org/omg/CORBA/UnionMemberHelper.java
org/omg/CORBA/WrongTransaction.java
org/omg/CORBA/CurrentHolder.java
org/omg/CORBA/VisibilityHelper.java
org/omg/CORBA/LongLongSeqHelper.java
org/omg/CORBA/OBJ_ADAPTER.java
org/omg/CORBA/ExceptionList.java
org/omg/CORBA/INTF_REPOS.java
org/omg/CORBA/VM_ABSTRACT.java
org/omg/CORBA/TRANSACTION_ROLLEDBACK.java
org/omg/CORBA/AnySeqHolder.java
org/omg/CORBA/Object.java
org/omg/CORBA/ARG_IN.java
org/omg/CORBA/Current.java
org/omg/CORBA/Context.java
org/omg/CORBA/_PolicyStub.java
org/omg/CORBA/ValueMemberHelper.java
org/omg/CORBA/PolicyErrorHelper.java
org/omg/CORBA/TypeCodeHolder.java
org/omg/CORBA/TypeCode.java
org/omg/CORBA/UserException.java
org/omg/CORBA/WrongTransactionHolder.java
org/omg/CORBA/WStringValueHelper.java
org/omg/CORBA/IdentifierHelper.java
org/omg/CORBA/UnknownUserException.java
org/omg/CORBA/portable/StreamableValue.java
org/omg/CORBA/portable/Delegate.java
org/omg/CORBA/portable/InputStream.java
org/omg/CORBA/portable/IDLEntity.java
org/omg/CORBA/portable/ApplicationException.java
org/omg/CORBA/portable/ValueOutputStream.java
org/omg/CORBA/portable/InvokeHandler.java
org/omg/CORBA/portable/Streamable.java
org/omg/CORBA/portable/ServantObject.java
org/omg/CORBA/portable/RemarshalException.java
org/omg/CORBA/portable/UnknownException.java
org/omg/CORBA/portable/CustomValue.java
org/omg/CORBA/portable/ObjectImpl.java
org/omg/CORBA/portable/BoxedValueHelper.java
org/omg/CORBA/portable/ValueInputStream.java
org/omg/CORBA/portable/ValueFactory.java
org/omg/CORBA/portable/OutputStream.java
org/omg/CORBA/portable/ResponseHandler.java
org/omg/CORBA/portable/IndirectionException.java
org/omg/CORBA/portable/ValueBase.java
org/omg/CORBA/StringSeqHelper.java
org/omg/CORBA/CharSeqHelper.java
org/omg/CORBA/LongLongSeqHolder.java
org/omg/CORBA/ORBPackage/InvalidName.java
org/omg/CORBA/ORBPackage/InconsistentTypeCode.java
org/omg/CORBA/UNSUPPORTED_POLICY_VALUE.java
org/omg/CORBA/UnknownUserExceptionHelper.java
org/omg/CORBA/DynValue.java
org/omg/CORBA/Request.java
org/omg/CORBA/PRIVATE_MEMBER.java
org/omg/CORBA/MARSHAL.java
org/omg/CORBA/DoubleHolder.java
org/omg/CORBA/SystemException.java
org/omg/CORBA/LongSeqHelper.java
org/omg/CORBA/BAD_POLICY_VALUE.java
org/omg/CORBA/ServiceInformation.java
org/omg/CORBA/BooleanHolder.java
org/omg/CORBA/BAD_POLICY_TYPE.java
org/omg/CORBA/DataInputStream.java
org/omg/CORBA/_IDLTypeStub.java
org/omg/CORBA/NamedValue.java
org/omg/CORBA/ShortSeqHelper.java
org/omg/CORBA/DynEnum.java
org/omg/CORBA/OMGVMCID.java
org/omg/CORBA/ACTIVITY_COMPLETED.java
org/omg/CORBA/IDLType.java
org/omg/CORBA/PERSIST_STORE.java
org/omg/CORBA/DoubleSeqHelper.java
org/omg/CORBA/UNSUPPORTED_POLICY.java
org/omg/CORBA/ServiceDetailHelper.java
org/omg/CORBA/Any.java
org/omg/CORBA/DynAny.java
org/omg/CORBA/PolicyHolder.java
org/omg/CORBA/CompletionStatus.java
org/omg/CORBA/NO_PERMISSION.java
org/omg/CORBA/UShortSeqHelper.java
org/omg/CORBA/FloatSeqHelper.java
org/omg/CORBA/StructMember.java
org/omg/CORBA/ServiceDetail.java
org/omg/CORBA/CustomMarshal.java
org/omg/CORBA/IDLTypeHelper.java
org/omg/CORBA/UnionMember.java
org/omg/CORBA/IRObjectOperations.java
org/omg/CORBA/BAD_PARAM.java
org/omg/CORBA/ParameterMode.java
org/omg/CORBA/PolicyErrorHolder.java
org/omg/CORBA/AnySeqHelper.java
org/omg/CORBA/OctetSeqHelper.java
org/omg/CORBA/BooleanSeqHelper.java
org/omg/CORBA/REBIND.java
org/omg/CORBA/DynArray.java
org/omg/CORBA/WrongTransactionHelper.java
org/omg/CORBA/PrincipalHolder.java
org/omg/CORBA/FloatHolder.java
org/omg/CORBA/DomainManager.java
org/omg/CORBA/PolicyHelper.java
org/omg/CORBA/CurrentOperations.java
org/omg/CORBA/ServiceInformationHolder.java
org/omg/CORBA/ULongLongSeqHelper.java
org/omg/CORBA/FieldNameHelper.java
org/omg/CORBA/OctetSeqHolder.java
org/omg/CORBA/LongHolder.java
org/omg/CORBA/WStringSeqHolder.java
org/omg/CORBA/ParameterModeHolder.java
org/omg/CORBA/TRANSACTION_REQUIRED.java
org/omg/CORBA/IMP_LIMIT.java
org/omg/CORBA/PUBLIC_MEMBER.java
org/omg/CORBA/IDLTypeOperations.java
org/omg/CORBA/NO_MEMORY.java
org/omg/CORBA/TRANSACTION_UNAVAILABLE.java
org/omg/CORBA/Environment.java
org/omg/CORBA/ARG_INOUT.java
org/omg/CORBA/FixedHolder.java
org/omg/CORBA/WCharSeqHolder.java
org/omg/CORBA/CODESET_INCOMPATIBLE.java
org/omg/CORBA/INVALID_TRANSACTION.java
org/omg/CORBA/DynAnyPackage/Invalid.java
org/omg/CORBA/DynAnyPackage/InvalidSeq.java
org/omg/CORBA/DynAnyPackage/InvalidValue.java
org/omg/CORBA/DynAnyPackage/TypeMismatch.java
org/omg/CORBA/RepositoryIdHelper.java
org/omg/CORBA/VM_CUSTOM.java
org/omg/CORBA/INVALID_ACTIVITY.java
org/omg/CORBA/ValueBaseHelper.java
org/omg/CORBA/ShortSeqHolder.java
org/omg/CORBA/ContextList.java
org/omg/CORBA/DefinitionKindHelper.java
org/omg/CORBA/BAD_OPERATION.java
org/omg/CORBA/ShortHolder.java
org/omg/CORBA/DynStruct.java
org/omg/CORBA/Policy.java
org/omg/CORBA/LocalObject.java
org/omg/CORBA/INV_OBJREF.java
org/omg/CORBA/INITIALIZE.java
org/omg/CORBA/ObjectHelper.java
org/omg/CORBA/TRANSACTION_MODE.java
org/omg/CORBA/ServerRequest.java
org/omg/CORBA/StructMemberHelper.java
org/omg/CORBA/ByteHolder.java
org/omg/CORBA/NO_RESPONSE.java
org/omg/CORBA/NameValuePair.java
org/omg/CORBA_2_3/ORB.java
org/omg/CORBA_2_3/portable/Delegate.java
org/omg/CORBA_2_3/portable/InputStream.java
org/omg/CORBA_2_3/portable/ObjectImpl.java
org/omg/CORBA_2_3/portable/OutputStream.java
org/omg/CosNaming/_BindingIteratorImplBase.java
org/omg/CosNaming/NameComponentHolder.java
org/omg/CosNaming/_NamingContextStub.java
org/omg/CosNaming/NamingContextExtOperations.java
org/omg/CosNaming/NameHolder.java
org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.java
org/omg/CosNaming/NamingContextExtPackage/URLStringHelper.java
org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHolder.java
org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.java
org/omg/CosNaming/NamingContextExtPackage/AddressHelper.java
org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.java
org/omg/CosNaming/NamingContextPackage/AlreadyBoundHelper.java
org/omg/CosNaming/NamingContextPackage/NotEmptyHelper.java
org/omg/CosNaming/NamingContextPackage/InvalidNameHolder.java
org/omg/CosNaming/NamingContextPackage/NotFoundReasonHelper.java
org/omg/CosNaming/NamingContextPackage/InvalidNameHelper.java
org/omg/CosNaming/NamingContextPackage/CannotProceed.java
org/omg/CosNaming/NamingContextPackage/AlreadyBound.java
org/omg/CosNaming/NamingContextPackage/NotEmptyHolder.java
org/omg/CosNaming/NamingContextPackage/NotFoundReason.java
org/omg/CosNaming/NamingContextPackage/InvalidName.java
org/omg/CosNaming/NamingContextPackage/AlreadyBoundHolder.java
org/omg/CosNaming/NamingContextPackage/NotFoundReasonHolder.java
org/omg/CosNaming/NamingContextPackage/CannotProceedHolder.java
org/omg/CosNaming/NamingContextPackage/NotFoundHolder.java
org/omg/CosNaming/NamingContextPackage/NotFoundHelper.java
org/omg/CosNaming/NamingContextPackage/NotFound.java
org/omg/CosNaming/NamingContextPackage/NotEmpty.java
org/omg/CosNaming/NamingContextPackage/CannotProceedHelper.java
org/omg/CosNaming/_NamingContextImplBase.java
org/omg/CosNaming/NamingContextPOA.java
org/omg/CosNaming/BindingIterator.java
org/omg/CosNaming/BindingHelper.java
org/omg/CosNaming/NamingContextHolder.java
org/omg/CosNaming/BindingHolder.java
org/omg/CosNaming/BindingType.java
org/omg/CosNaming/BindingListHolder.java
org/omg/CosNaming/BindingTypeHelper.java
org/omg/CosNaming/NamingContextExt.java
org/omg/CosNaming/NamingContext.java
org/omg/CosNaming/NamingContextExtPOA.java
org/omg/CosNaming/IstringHelper.java
org/omg/CosNaming/NamingContextExtHelper.java
org/omg/CosNaming/BindingTypeHolder.java
org/omg/CosNaming/BindingIteratorPOA.java
org/omg/CosNaming/_NamingContextExtStub.java
org/omg/CosNaming/BindingListHelper.java
org/omg/CosNaming/NameComponent.java
org/omg/CosNaming/NameComponentHelper.java
org/omg/CosNaming/NamingContextExtHolder.java
org/omg/CosNaming/Binding.java
org/omg/CosNaming/NameHelper.java
org/omg/CosNaming/BindingIteratorHelper.java
org/omg/CosNaming/BindingIteratorHolder.java
org/omg/CosNaming/_BindingIteratorStub.java
org/omg/CosNaming/NamingContextHelper.java
org/omg/CosNaming/BindingIteratorOperations.java
org/omg/CosNaming/NamingContextOperations.java
org/omg/DynamicAny/_DynAnyStub.java
org/omg/DynamicAny/DynUnion.java
org/omg/DynamicAny/DynSequence.java
org/omg/DynamicAny/DynValueBoxOperations.java
org/omg/DynamicAny/DynAnySeqHelper.java
org/omg/DynamicAny/DynEnumHelper.java
org/omg/DynamicAny/NameDynAnyPair.java
org/omg/DynamicAny/DynValueCommon.java
org/omg/DynamicAny/_DynEnumStub.java
org/omg/DynamicAny/DynStructOperations.java
org/omg/DynamicAny/DynValueOperations.java
org/omg/DynamicAny/_DynSequenceStub.java
org/omg/DynamicAny/DynFixed.java
org/omg/DynamicAny/_DynValueStub.java
org/omg/DynamicAny/DynUnionHelper.java
org/omg/DynamicAny/DynValueHelper.java
org/omg/DynamicAny/NameValuePairHelper.java
org/omg/DynamicAny/DynEnumOperations.java
org/omg/DynamicAny/DynFixedOperations.java
org/omg/DynamicAny/DynAnyFactoryOperations.java
org/omg/DynamicAny/DynFixedHelper.java
org/omg/DynamicAny/_DynAnyFactoryStub.java
org/omg/DynamicAny/DynAnyOperations.java
org/omg/DynamicAny/DynArrayHelper.java
org/omg/DynamicAny/DynSequenceHelper.java
org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCode.java
org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.java
org/omg/DynamicAny/NameDynAnyPairSeqHelper.java
org/omg/DynamicAny/DynAnyHelper.java
org/omg/DynamicAny/DynValue.java
org/omg/DynamicAny/_DynUnionStub.java
org/omg/DynamicAny/DynValueCommonOperations.java
org/omg/DynamicAny/DynEnum.java
org/omg/DynamicAny/DynValueBox.java
org/omg/DynamicAny/DynAny.java
org/omg/DynamicAny/_DynFixedStub.java
org/omg/DynamicAny/DynSequenceOperations.java
org/omg/DynamicAny/DynAnyFactoryHelper.java
org/omg/DynamicAny/AnySeqHelper.java
org/omg/DynamicAny/DynArray.java
org/omg/DynamicAny/DynArrayOperations.java
org/omg/DynamicAny/FieldNameHelper.java
org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.java
org/omg/DynamicAny/DynAnyPackage/InvalidValue.java
org/omg/DynamicAny/DynAnyPackage/TypeMismatch.java
org/omg/DynamicAny/DynAnyPackage/InvalidValueHelper.java
org/omg/DynamicAny/_DynStructStub.java
org/omg/DynamicAny/DynStructHelper.java
org/omg/DynamicAny/NameDynAnyPairHelper.java
org/omg/DynamicAny/DynStruct.java
org/omg/DynamicAny/DynUnionOperations.java
org/omg/DynamicAny/_DynArrayStub.java
org/omg/DynamicAny/NameValuePairSeqHelper.java
org/omg/DynamicAny/NameValuePair.java
org/omg/DynamicAny/DynAnyFactory.java
org/omg/PortableInterceptor/ForwardRequestHelper.java
org/omg/PortableInterceptor/CurrentHelper.java
org/omg/PortableInterceptor/ORBInitializerOperations.java
org/omg/PortableInterceptor/UNKNOWN.java
org/omg/PortableInterceptor/IORInterceptor_3_0.java
org/omg/PortableInterceptor/LOCATION_FORWARD.java
org/omg/PortableInterceptor/ClientRequestInterceptorOperations.java
org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHelper.java
org/omg/PortableInterceptor/IORInfo.java
org/omg/PortableInterceptor/ObjectIdHelper.java
org/omg/PortableInterceptor/ObjectReferenceTemplate.java
org/omg/PortableInterceptor/InterceptorOperations.java
org/omg/PortableInterceptor/PolicyFactory.java
org/omg/PortableInterceptor/PolicyFactoryOperations.java
org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.java
org/omg/PortableInterceptor/IORInterceptor.java
org/omg/PortableInterceptor/ServerRequestInfoOperations.java
org/omg/PortableInterceptor/ServerRequestInterceptorOperations.java
org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.java
org/omg/PortableInterceptor/ServerRequestInfo.java
org/omg/PortableInterceptor/AdapterNameHelper.java
org/omg/PortableInterceptor/INACTIVE.java
org/omg/PortableInterceptor/ObjectReferenceFactoryHelper.java
org/omg/PortableInterceptor/ORBInitInfoOperations.java
org/omg/PortableInterceptor/Current.java
org/omg/PortableInterceptor/USER_EXCEPTION.java
org/omg/PortableInterceptor/HOLDING.java
org/omg/PortableInterceptor/SUCCESSFUL.java
org/omg/PortableInterceptor/ForwardRequest.java
org/omg/PortableInterceptor/IORInterceptor_3_0Helper.java
org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.java
org/omg/PortableInterceptor/ClientRequestInfo.java
org/omg/PortableInterceptor/IORInfoOperations.java
org/omg/PortableInterceptor/InvalidSlotHelper.java
org/omg/PortableInterceptor/RequestInfoOperations.java
org/omg/PortableInterceptor/IORInterceptor_3_0Operations.java
org/omg/PortableInterceptor/ORBInitializer.java
org/omg/PortableInterceptor/SYSTEM_EXCEPTION.java
org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.java
org/omg/PortableInterceptor/Interceptor.java
org/omg/PortableInterceptor/AdapterStateHelper.java
org/omg/PortableInterceptor/AdapterManagerIdHelper.java
org/omg/PortableInterceptor/ServerIdHelper.java
org/omg/PortableInterceptor/NON_EXISTENT.java
org/omg/PortableInterceptor/ACTIVE.java
org/omg/PortableInterceptor/ORBIdHelper.java
org/omg/PortableInterceptor/ORBInitInfo.java
org/omg/PortableInterceptor/CurrentOperations.java
org/omg/PortableInterceptor/ClientRequestInfoOperations.java
org/omg/PortableInterceptor/IORInterceptor_3_0Holder.java
org/omg/PortableInterceptor/DISCARDING.java
org/omg/PortableInterceptor/InvalidSlot.java
org/omg/PortableInterceptor/ObjectReferenceFactory.java
org/omg/PortableInterceptor/RequestInfo.java
org/omg/PortableInterceptor/TRANSPORT_RETRY.java
org/omg/PortableInterceptor/ClientRequestInterceptor.java
org/omg/PortableInterceptor/IORInterceptorOperations.java
org/omg/PortableInterceptor/ORBInitInfoPackage/ObjectIdHelper.java
org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java
org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHelper.java
org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.java
org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidName.java
org/omg/PortableInterceptor/ServerRequestInterceptor.java
org/jcp/xml/dsig/internal/MacOutputStream.java
org/jcp/xml/dsig/internal/SignerOutputStream.java
org/jcp/xml/dsig/internal/DigesterOutputStream.java
org/jcp/xml/dsig/internal/dom/DOMStructure.java
org/jcp/xml/dsig/internal/dom/DOMReference.java
org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java
org/jcp/xml/dsig/internal/dom/ApacheTransform.java
org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java
org/jcp/xml/dsig/internal/dom/Utils.java
org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java
org/jcp/xml/dsig/internal/dom/DOMX509Data.java
org/jcp/xml/dsig/internal/dom/ApacheData.java
org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java
org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java
org/jcp/xml/dsig/internal/dom/DOMXPathFilter2Transform.java
org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java
org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java
org/jcp/xml/dsig/internal/dom/DOMXPathTransform.java
org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java
org/jcp/xml/dsig/internal/dom/DOMTransform.java
org/jcp/xml/dsig/internal/dom/DOMRetrievalMethod.java
org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java
org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java
org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java
org/jcp/xml/dsig/internal/dom/DOMPGPData.java
org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java
org/jcp/xml/dsig/internal/dom/DOMKeyValue.java
org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java
org/jcp/xml/dsig/internal/dom/DOMXMLObject.java
org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java
org/jcp/xml/dsig/internal/dom/ApacheOctetStreamData.java
org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java
org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java
org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java
org/jcp/xml/dsig/internal/dom/DOMManifest.java
org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java
org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java
org/jcp/xml/dsig/internal/dom/DOMXSLTTransform.java
org/jcp/xml/dsig/internal/dom/DOMUtils.java
org/jcp/xml/dsig/internal/dom/XMLDSigRI.java
org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java
org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java
org/jcp/xml/dsig/internal/dom/DOMKeyName.java
sun/dc/DuctusRenderingEngine.java
sun/applet/AppletPanel.java
sun/applet/AppletViewerPanel.java
sun/applet/AppletResourceLoader.java
sun/applet/AppletMessageHandler.java
sun/applet/AppletIOException.java
sun/applet/AppletThreadGroup.java
sun/applet/Main.java
sun/applet/AppletProps.java
sun/applet/AppletClassLoader.java
sun/applet/AppletObjectInputStream.java
sun/applet/AppletAudioClip.java
sun/applet/AppletEvent.java
sun/applet/AppletListener.java
sun/applet/AppletViewer.java
sun/applet/AppletSecurity.java
sun/applet/AppletIllegalArgumentException.java
sun/applet/AppletViewerFactory.java
sun/applet/AppletImageRef.java
sun/applet/resources/MsgAppletViewer.java
sun/applet/resources/MsgAppletViewer_it.java
sun/applet/resources/MsgAppletViewer_fr.java
sun/applet/resources/MsgAppletViewer_ja.java
sun/applet/resources/MsgAppletViewer_de.java
sun/applet/resources/MsgAppletViewer_sv.java
sun/applet/resources/MsgAppletViewer_es.java
sun/applet/resources/MsgAppletViewer_zh_CN.java
sun/applet/resources/MsgAppletViewer_zh_TW.java
sun/applet/resources/MsgAppletViewer_ko.java
sun/applet/AppletEventMulticaster.java
sun/applet/AppletSecurityException.java
sun/management/HotspotInternal.java
sun/management/HotSpotDiagnostic.java
sun/management/GcInfoBuilder.java
sun/management/HotspotInternalMBean.java
sun/management/ConnectorAddressLink.java
sun/management/GarbageCollectorImpl.java
sun/management/counter/Variability.java
sun/management/counter/Units.java
sun/management/counter/AbstractCounter.java
sun/management/counter/LongCounter.java
sun/management/counter/perf/PerfStringCounter.java
sun/management/counter/perf/ByteArrayCounterSnapshot.java
sun/management/counter/perf/LongArrayCounterSnapshot.java
sun/management/counter/perf/PerfLongCounter.java
sun/management/counter/perf/LongCounterSnapshot.java
sun/management/counter/perf/PerfDataType.java
sun/management/counter/perf/PerfInstrumentation.java
sun/management/counter/perf/Prologue.java
sun/management/counter/perf/StringCounterSnapshot.java
sun/management/counter/perf/InstrumentationException.java
sun/management/counter/perf/PerfByteArrayCounter.java
sun/management/counter/perf/PerfDataEntry.java
sun/management/counter/perf/PerfLongArrayCounter.java
sun/management/counter/LongArrayCounter.java
sun/management/counter/Counter.java
sun/management/counter/ByteArrayCounter.java
sun/management/counter/StringCounter.java
sun/management/HotspotRuntimeMBean.java
sun/management/CompilerThreadStat.java
sun/management/MemoryManagerImpl.java
sun/management/GcInfoCompositeData.java
sun/management/MemoryNotifInfoCompositeData.java
sun/management/VMManagement.java
sun/management/StackTraceElementCompositeData.java
sun/management/HotspotCompilationMBean.java
sun/management/ClassLoadingImpl.java
sun/management/HotspotThreadMBean.java
sun/management/MemoryPoolImpl.java
sun/management/MonitorInfoCompositeData.java
sun/management/HotspotClassLoadingMBean.java
sun/management/AgentConfigurationError.java
sun/management/FileSystem.java
sun/management/Agent.java
sun/management/LockDataConverter.java
sun/management/HotspotMemoryMBean.java
sun/management/RuntimeImpl.java
sun/management/MemoryImpl.java
sun/management/HotspotCompilation.java
sun/management/Sensor.java
sun/management/HotspotMemory.java
sun/management/MemoryUsageCompositeData.java
sun/management/HotspotThread.java
sun/management/HotspotClassLoading.java
sun/management/VMOptionCompositeData.java
sun/management/LazyCompositeData.java
sun/management/OperatingSystemImpl.java
sun/management/ManagementFactory.java
sun/management/Flag.java
sun/management/jmxremote/SingleEntryRegistry.java
sun/management/jmxremote/SSLContextRMIServerSocketFactory.java
sun/management/jmxremote/ConnectorBootstrap.java
sun/management/jmxremote/LocalRMIServerSocketFactory.java
sun/management/snmp/jvminstr/JvmMemPoolTableMetaImpl.java
sun/management/snmp/jvminstr/JvmMemMgrPoolRelTableMetaImpl.java
sun/management/snmp/jvminstr/JvmRTClassPathTableMetaImpl.java
sun/management/snmp/jvminstr/JvmRTBootClassPathTableMetaImpl.java
sun/management/snmp/jvminstr/JvmThreadingImpl.java
sun/management/snmp/jvminstr/JVM_MANAGEMENT_MIB_IMPL.java
sun/management/snmp/jvminstr/JvmMemManagerTableMetaImpl.java
sun/management/snmp/jvminstr/JvmRuntimeMetaImpl.java
sun/management/snmp/jvminstr/NotificationTargetImpl.java
sun/management/snmp/jvminstr/JvmRTLibraryPathEntryImpl.java
sun/management/snmp/jvminstr/JvmRTLibraryPathTableMetaImpl.java
sun/management/snmp/jvminstr/JvmThreadInstanceTableMetaImpl.java
sun/management/snmp/jvminstr/JvmMemManagerEntryImpl.java
sun/management/snmp/jvminstr/JvmMemGCEntryImpl.java
sun/management/snmp/jvminstr/NotificationTarget.java
sun/management/snmp/jvminstr/JvmMemoryImpl.java
sun/management/snmp/jvminstr/JvmThreadingMetaImpl.java
sun/management/snmp/jvminstr/JvmRuntimeImpl.java
sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java
sun/management/snmp/jvminstr/JvmMemGCTableMetaImpl.java
sun/management/snmp/jvminstr/JvmMemMgrPoolRelEntryImpl.java
sun/management/snmp/jvminstr/JvmRTClassPathEntryImpl.java
sun/management/snmp/jvminstr/JvmOSImpl.java
sun/management/snmp/jvminstr/JvmRTInputArgsEntryImpl.java
sun/management/snmp/jvminstr/JvmMemoryMetaImpl.java
sun/management/snmp/jvminstr/JvmCompilationImpl.java
sun/management/snmp/jvminstr/JvmMemPoolEntryImpl.java
sun/management/snmp/jvminstr/JvmRTInputArgsTableMetaImpl.java
sun/management/snmp/jvminstr/JvmClassLoadingImpl.java
sun/management/snmp/jvminstr/JvmRTBootClassPathEntryImpl.java
sun/management/snmp/jvmmib/JvmMemMgrPoolRelTableMeta.java
sun/management/snmp/jvmmib/EnumJvmClassesVerboseLevel.java
sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMBean.java
sun/management/snmp/jvmmib/JvmOSMeta.java
sun/management/snmp/jvmmib/JvmRuntimeMeta.java
sun/management/snmp/jvmmib/JvmMemManagerTableMeta.java
sun/management/snmp/jvmmib/JvmMemGCEntryMBean.java
sun/management/snmp/jvmmib/EnumJvmThreadCpuTimeMonitoring.java
sun/management/snmp/jvmmib/JvmRTInputArgsEntryMBean.java
sun/management/snmp/jvmmib/JvmClassLoadingMeta.java
sun/management/snmp/jvmmib/JvmMemMgrPoolRelEntryMeta.java
sun/management/snmp/jvmmib/JvmMemGCTableMeta.java
sun/management/snmp/jvmmib/EnumJvmMemPoolThreshdSupport.java
sun/management/snmp/jvmmib/JvmRTLibraryPathTableMeta.java
sun/management/snmp/jvmmib/EnumJvmMemoryGCCall.java
sun/management/snmp/jvmmib/JvmMemPoolTableMeta.java
sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIB.java
sun/management/snmp/jvmmib/JvmClassLoadingMBean.java
sun/management/snmp/jvmmib/JvmMemoryMBean.java
sun/management/snmp/jvmmib/JvmCompilationMeta.java
sun/management/snmp/jvmmib/JvmOSMBean.java
sun/management/snmp/jvmmib/JvmMemMgrPoolRelEntryMBean.java
sun/management/snmp/jvmmib/EnumJvmMemPoolState.java
sun/management/snmp/jvmmib/JVM_MANAGEMENT_MIBOidTable.java
sun/management/snmp/jvmmib/EnumJvmRTBootClassPathSupport.java
sun/management/snmp/jvmmib/JvmRuntimeMBean.java
sun/management/snmp/jvmmib/JvmThreadInstanceEntryMBean.java
sun/management/snmp/jvmmib/JvmRTBootClassPathTableMeta.java
sun/management/snmp/jvmmib/JvmRTBootClassPathEntryMBean.java
sun/management/snmp/jvmmib/JvmThreadingMBean.java
sun/management/snmp/jvmmib/EnumJvmThreadContentionMonitoring.java
sun/management/snmp/jvmmib/JvmMemPoolEntryMeta.java
sun/management/snmp/jvmmib/JvmMemPoolEntryMBean.java
sun/management/snmp/jvmmib/JvmRTClassPathEntryMeta.java
sun/management/snmp/jvmmib/JvmRTInputArgsEntryMeta.java
sun/management/snmp/jvmmib/JvmMemoryMeta.java
sun/management/snmp/jvmmib/JvmThreadInstanceTableMeta.java
sun/management/snmp/jvmmib/EnumJvmMemManagerState.java
sun/management/snmp/jvmmib/EnumJvmMemoryGCVerboseLevel.java
sun/management/snmp/jvmmib/EnumJvmMemPoolCollectThreshdSupport.java
sun/management/snmp/jvmmib/JvmMemGCEntryMeta.java
sun/management/snmp/jvmmib/JvmRTClassPathTableMeta.java
sun/management/snmp/jvmmib/EnumJvmJITCompilerTimeMonitoring.java
sun/management/snmp/jvmmib/JvmThreadingMeta.java
sun/management/snmp/jvmmib/JvmRTInputArgsTableMeta.java
sun/management/snmp/jvmmib/JvmRTClassPathEntryMBean.java
sun/management/snmp/jvmmib/JvmRTLibraryPathEntryMeta.java
sun/management/snmp/jvmmib/EnumJvmMemPoolType.java
sun/management/snmp/jvmmib/JvmMemManagerEntryMBean.java
sun/management/snmp/jvmmib/JvmMemManagerEntryMeta.java
sun/management/snmp/jvmmib/JvmThreadInstanceEntryMeta.java
sun/management/snmp/jvmmib/JvmRTBootClassPathEntryMeta.java
sun/management/snmp/jvmmib/JvmCompilationMBean.java
sun/management/snmp/AdaptorBootstrap.java
sun/management/snmp/util/SnmpTableCache.java
sun/management/snmp/util/SnmpCachedData.java
sun/management/snmp/util/MibLogger.java
sun/management/snmp/util/JvmContextFactory.java
sun/management/snmp/util/SnmpNamedListTableCache.java
sun/management/snmp/util/SnmpTableHandler.java
sun/management/snmp/util/SnmpListTableCache.java
sun/management/snmp/util/SnmpLoadedClassData.java
sun/management/Util.java
sun/management/FileSystemImpl.java
sun/management/NotificationEmitterSupport.java
sun/management/CompilationImpl.java
sun/management/MethodInfo.java
sun/management/LockDataConverterMXBean.java
sun/management/HotspotRuntime.java
sun/management/MappedMXBeanType.java
sun/management/resources/agent_zh_CN.java
sun/management/resources/agent_ko.java
sun/management/resources/agent_fr.java
sun/management/resources/agent_ja.java
sun/management/resources/agent_it.java
sun/management/resources/agent_de.java
sun/management/resources/agent_zh_HK.java
sun/management/resources/agent_zh_TW.java
sun/management/resources/agent_sv.java
...@@ -3,7 +3,7 @@ include $(GOROOT)/src/Make.inc ...@@ -3,7 +3,7 @@ include $(GOROOT)/src/Make.inc
TARG=bulkstat TARG=bulkstat
GOFILES=bulkstat.go GOFILES=bulkstat.go
DEPS=../../fuse DEPS=../../benchmark
include $(GOROOT)/src/Make.cmd include $(GOROOT)/src/Make.cmd
...@@ -6,13 +6,9 @@ package main ...@@ -6,13 +6,9 @@ package main
import ( import (
"bufio" "bufio"
"flag" "flag"
"fmt" "github.com/hanwen/go-fuse/benchmark"
"github.com/hanwen/go-fuse/fuse"
"math"
"os" "os"
"runtime" "runtime"
"sort"
"time"
) )
func main() { func main() {
...@@ -42,94 +38,6 @@ func main() { ...@@ -42,94 +38,6 @@ func main() {
files = append(files, string(l)) files = append(files, string(l))
} }
totalRuns := *runs + 1 results := fuse.RunBulkStat(*runs, *threads, *sleepTime, files)
fuse.AnalyzeBenchmarkRuns(results)
results := make([]float64, 0)
for j := 0; j < totalRuns; j++ {
result := BulkStat(*threads, files)
if j > 0 {
results = append(results, result)
} else {
fmt.Println("Ignoring first run to preheat caches.")
}
if j < totalRuns-1 {
fmt.Printf("Sleeping %.2f seconds\n", *sleepTime)
time.Sleep(int64(*sleepTime * 1e9))
}
}
Analyze(results)
}
func Analyze(times []float64) {
sorted := times
sort.Float64s(sorted)
tot := 0.0
for _, v := range times {
tot += v
}
n := float64(len(times))
avg := tot / n
variance := 0.0
for _, v := range times {
variance += (v - avg) * (v - avg)
}
variance /= n
stddev := math.Sqrt(variance)
median := sorted[len(times)/2]
perc90 := sorted[int(n*0.9)]
perc10 := sorted[int(n*0.1)]
fmt.Printf(
"%d samples\n"+
"avg %.2f ms 2sigma %.2f "+
"median %.2fms\n"+
"10%%tile %.2fms, 90%%tile %.2fms\n",
len(times), avg, 2*stddev, median, perc10, perc90)
}
// Returns milliseconds.
func BulkStat(parallelism int, files []string) float64 {
todo := make(chan string, len(files))
dts := make(chan int64, parallelism)
allStart := time.Nanoseconds()
fmt.Printf("Statting %d files with %d threads\n", len(files), parallelism)
for i := 0; i < parallelism; i++ {
go func() {
for {
fn := <-todo
if fn == "" {
break
}
t := time.Nanoseconds()
os.Lstat(fn)
dts <- time.Nanoseconds() - t
}
}()
}
for _, v := range files {
todo <- v
}
total := 0.0
for i := 0; i < len(files); i++ {
total += float64(<-dts) * 1e-6
}
allEnd := time.Nanoseconds()
avg := total / float64(len(files))
fmt.Printf("Elapsed: %f sec. Average stat %f ms\n",
float64(allEnd-allStart)*1e-9, avg)
return avg
} }
...@@ -8,7 +8,6 @@ import ( ...@@ -8,7 +8,6 @@ import (
"log" "log"
"math" "math"
"reflect" "reflect"
"regexp"
"strings" "strings"
"syscall" "syscall"
"unsafe" "unsafe"
...@@ -116,20 +115,6 @@ func Writev(fd int, packet [][]byte) (n int, err os.Error) { ...@@ -116,20 +115,6 @@ func Writev(fd int, packet [][]byte) (n int, err os.Error) {
return n, err return n, err
} }
func CountCpus() int {
var contents [10240]byte
f, err := os.Open("/proc/stat")
defer f.Close()
if err != nil {
return 1
}
n, _ := f.Read(contents[:])
re, _ := regexp.Compile("\ncpu[0-9]")
return len(re.FindAllString(string(contents[:n]), 100))
}
// Creates a return entry for a non-existent path. // Creates a return entry for a non-existent path.
func NegativeEntry(time float64) *EntryOut { func NegativeEntry(time float64) *EntryOut {
out := new(EntryOut) out := new(EntryOut)
...@@ -189,3 +174,4 @@ func CurrentOwner() *Owner { ...@@ -189,3 +174,4 @@ func CurrentOwner() *Owner {
Gid: uint32(os.Getgid()), Gid: uint32(os.Getgid()),
} }
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment