You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by lc...@apache.org on 2017/12/22 17:27:00 UTC

[beam] 02/03: BEAM-3324 improve symtab memory usage

This is an automated email from the ASF dual-hosted git repository.

lcwik pushed a commit to branch go-sdk
in repository https://gitbox.apache.org/repos/asf/beam.git

commit d85a502c838648814b96d56370b98fc799e07705
Author: Bill Neubauer <wc...@google.com>
AuthorDate: Fri Dec 15 10:00:22 2017 -0800

    BEAM-3324 improve symtab memory usage
    
    Change the symbol table lookup to read from a file rather than
    loading the file into memory. This is a space/time tradeoff, but
    lookups can be cached so we can get good speed with a much lower
    memory footprint.
---
 sdks/go/pkg/beam/core/util/symtab/symtab.go | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/sdks/go/pkg/beam/core/util/symtab/symtab.go b/sdks/go/pkg/beam/core/util/symtab/symtab.go
index a717d08..54ec579 100644
--- a/sdks/go/pkg/beam/core/util/symtab/symtab.go
+++ b/sdks/go/pkg/beam/core/util/symtab/symtab.go
@@ -42,7 +42,8 @@ func New(filename string) (*SymbolTable, error) {
 	if err == nil {
 		d, err := ef.DWARF()
 		if err != nil {
-			return nil, err
+			f.Close()
+			return nil, fmt.Errorf("No working DWARF: %v", err)
 		}
 		return &SymbolTable{d}, nil
 	}
@@ -52,6 +53,7 @@ func New(filename string) (*SymbolTable, error) {
 	if err == nil {
 		d, err := mf.DWARF()
 		if err != nil {
+			f.Close()
 			return nil, fmt.Errorf("No working DWARF: %v", err)
 		}
 		return &SymbolTable{d}, nil
@@ -62,12 +64,14 @@ func New(filename string) (*SymbolTable, error) {
 	if err == nil {
 		d, err := pf.DWARF()
 		if err != nil {
-			return nil, err
+			f.Close()
+			return nil, fmt.Errorf("No working DWARF: %v", err)
 		}
 		return &SymbolTable{d}, nil
 	}
 
 	// Give up, we don't recognize it
+	f.Close()
 	return nil, fmt.Errorf("Unknown file format")
 }
 

-- 
To stop receiving notification emails like this one, please contact
"commits@beam.apache.org" <co...@beam.apache.org>.