Git Product home page Git Product logo

gogputils's Introduction

GoGPUtils

Codacy Badge Go Report Card GoDoc License Version Code size Repo size Issue open Issue closed

A simple Go general-purpose utility repository for avoid reinventing the wheel every time that I need to start a new project.

Benchmark

$ go test -bench=. -benchmem -benchtime=5s `go list ./... | grep -v "aws\|sftp\|http"`
goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/byte
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkTestIsUpperByteOK-8   	1000000000	         2.174 ns/op	       0 B/op	       0 allocs/op
BenchmarkTestIsLowerByteKO-8   	1000000000	         2.185 ns/op	       0 B/op	       0 allocs/op

goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/files
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkCountLinesFile-8         	  137064	     48990 ns/op	   37000 B/op	       5 allocs/op
BenchmarkListFile-8               	    2167	   2795762 ns/op	  634139 B/op	    7390 allocs/op
BenchmarkFindFilesSensitive-8     	    2142	   2821969 ns/op	  601264 B/op	    7378 allocs/op
BenchmarkFindFilesInsensitive-8   	    2152	   2789374 ns/op	  601175 B/op	    7378 allocs/op

goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/helper
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkRandomIntn-8            	406849989	        14.48 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomInt32-8           	417671403	        14.45 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomInt64-8           	317977765	        18.92 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomFloat32-8         	483547185	        12.38 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomFloat64-8         	450756500	        13.33 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomIntnR-8           	854001973	         6.984 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomInt32R-8          	1000000000	         5.935 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomInt64R-8          	382641378	        15.59 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomFloat32R-8        	1000000000	         4.375 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomFloat64R-8        	1000000000	         4.039 ns/op	       0 B/op	       0 allocs/op
BenchmarkRandomIntnRArray-8      	  706681	     11181 ns/op	    8192 B/op	       1 allocs/op
BenchmarkRandomInt32RArray-8     	  720908	      7630 ns/op	    4096 B/op	       1 allocs/op
BenchmarkRandomInt64RArray-8     	  282798	     18387 ns/op	    8192 B/op	       1 allocs/op
BenchmarkRandomFloat32Array-8    	 1000000	      6615 ns/op	    4096 B/op	       1 allocs/op
BenchmarkRandomFloat64RArray-8   	  973923	     14226 ns/op	    8192 B/op	       1 allocs/op
BenchmarkRandomString-8          	  372956	     16016 ns/op	    5376 B/op	       1 allocs/op

goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/math
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkSumIntArray-8                   	21259684	       276.3 ns/op	       0 B/op	       0 allocs/op
BenchmarkSumInt32Array-8                 	21679155	       276.6 ns/op	       0 B/op	       0 allocs/op
BenchmarkSumInt64Array-8                 	21689191	       276.9 ns/op	       0 B/op	       0 allocs/op
BenchmarkSumFloat32Array-8               	 7149135	       837.7 ns/op	       0 B/op	       0 allocs/op
BenchmarkSumFloat64Array-8               	 7130800	       838.0 ns/op	       0 B/op	       0 allocs/op
BenchmarkMaxIntIndex-8                   	 9218755	       660.1 ns/op	       0 B/op	       0 allocs/op
BenchmarkMaxInt32Index-8                 	 9081741	       663.5 ns/op	       0 B/op	       0 allocs/op
BenchmarkMaxInt64Index-8                 	 6498460	       905.1 ns/op	       0 B/op	       0 allocs/op
BenchmarkMaxFloat32Index-8               	 7288107	       807.0 ns/op	       0 B/op	       0 allocs/op
BenchmarkMaxFloat64Index-8               	 6400204	       919.1 ns/op	       0 B/op	       0 allocs/op
BenchmarkAverageInt-8                    	21770044	       275.2 ns/op	       0 B/op	       0 allocs/op
BenchmarkAverageInt32-8                  	21702019	       279.2 ns/op	       0 B/op	       0 allocs/op
BenchmarkAverageInt64-8                  	21416380	       280.0 ns/op	       0 B/op	       0 allocs/op
BenchmarkAverageFloat32-8                	 7214160	       832.5 ns/op	       0 B/op	       0 allocs/op
BenchmarkAverageFloat64-8                	 7128327	       831.8 ns/op	       0 B/op	       0 allocs/op
BenchmarkInitRandomMatrix-8              	  752602	     10999 ns/op	    6352 B/op	      13 allocs/op
BenchmarkMultiplySumArray1000-8          	 1000000	      5371 ns/op	    8192 B/op	       1 allocs/op
BenchmarkMultiplyMatrixLegacy100x100-8   	     408	  15497204 ns/op	18012339 B/op	   20101 allocs/op
BenchmarkMultiplyMatrix100x100-8         	    4159	   1447695 ns/op	   92288 B/op	     101 allocs/op
BenchmarkIsPrime-8                       	 2652973	      2249 ns/op	       0 B/op	       0 allocs/op
BenchmarkCosineSimilarity-8              	62873203	        94.24 ns/op	       0 B/op	       0 allocs/op

goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/search
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkLinearSearchInt-8           	  761466	      7683 ns/op	       0 B/op	       0 allocs/op
BenchmarkLinearSearchParallelInt-8   	212407228	        30.05 ns/op	      16 B/op	       1 allocs/op
BenchmarkContainsStringByte-8        	  266810	     31484 ns/op	   22146 B/op	      15 allocs/op
BenchmarkContainsStringsByte-8       	  118256	     50534 ns/op	   58196 B/op	      33 allocs/op
BenchmarkContainsWhichStrings-8      	    7248	    830028 ns/op	   58332 B/op	      36 allocs/op

goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/string
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkLevenshteinDistanceLegacy-8   	     100	  52979171 ns/op	51286027 B/op	    2502 allocs/op
BenchmarkLevenshteinDistance-8         	     452	  13153222 ns/op	   40960 B/op	       2 allocs/op
BenchmarkDiceCoefficient-8             	  137314	     43159 ns/op	       0 B/op	       0 allocs/op
BenchmarkJaroDistance-8                	    5758	   1032185 ns/op	    5376 B/op	       2 allocs/op
BenchmarkContainsOnlyLetter-8          	301701169	        19.89 ns/op	       0 B/op	       0 allocs/op
BenchmarkRemoveFromString-8            	   36577	    193441 ns/op	 1114117 B/op	       2 allocs/op
BenchmarkExtractTextFromQuery-8        	     126	  45763565 ns/op	21765488 B/op	  102064 allocs/op
BenchmarkCheckPresence-8               	1000000000	         2.426 ns/op	       0 B/op	       0 allocs/op
BenchmarkIsUpper-8                     	1000000000	         3.163 ns/op	       0 B/op	       0 allocs/op
BenchmarkIsLower-8                     	1000000000	         3.486 ns/op	       0 B/op	       0 allocs/op
BenchmarkRemoveWhiteSpace-8            	    2773	   2275941 ns/op	  557058 B/op	       1 allocs/op
BenchmarkIsASCII-8                     	206237712	        28.97 ns/op	       0 B/op	       0 allocs/op
BenchmarkSplit-8                       	    3511	   3395051 ns/op	 2446870 B/op	   14363 allocs/op
BenchmarkSplitBuiltin-8                	    6294	    896215 ns/op	  319488 B/op	       1 allocs/op
BenchmarkExtractString-8               	   15354	    392595 ns/op	       0 B/op	       0 allocs/op
BenchmarkRemoveNonASCII-8              	    1456	   4392784 ns/op	 1589249 B/op	       3 allocs/op
BenchmarkTestIsUpperOK-8               	1000000000	         3.142 ns/op	       0 B/op	       0 allocs/op
BenchmarkTestIsLowerOK-8               	1000000000	         3.492 ns/op	       0 B/op	       0 allocs/op
BenchmarkCreateJSON-8                  	      13	 665361057 ns/op	2998426824 B/op	   10020 allocs/op
BenchmarkJoin-8                        	   10275	    739491 ns/op	 2931697 B/op	      30 allocs/op
BenchmarkTrim-8                        	    1995	   2988434 ns/op	 1672093 B/op	      13 allocs/op
BenchmarkRemoveDoubleWhiteSpace-8      	    2520	   2329044 ns/op	  557056 B/op	       1 allocs/op
BenchmarkCountLines-8                  	   28654	    209826 ns/op	    4128 B/op	       2 allocs/op
BenchmarkReverseString-8               	    6412	   3824754 ns/op	 2914315 B/op	      32 allocs/op

goos: linux
goarch: amd64
pkg: github.com/alessiosavi/GoGPUtils/zip
cpu: Intel(R) Core(TM) i7-9700K CPU @ 3.60GHz
BenchmarkReadZipFile-8   	  499692	     10876 ns/op	    6320 B/op	      27 allocs/op
BenchmarkReadZip01-8     	  880110	     12334 ns/op	    6656 B/op	      29 allocs/op

gogputils's People

Contributors

alessiosavi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gogputils's Issues

Race condition in LinearSearchParallelInt

Describe the bug
Race condition happen in LinearSearchParallelInt method
To Reproduce
Steps to reproduce the behavior:

cd search
go test -race -covermode=atomic

Expected behavior
No error related to race condition

v0.0.9 and v0.0.10 contains a case-insensitive file name collision

Describe the bug
It's not possible to use v0.0.9 in module mode because it contains "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt" files that cause a case-insensitive file name collision. The go command rejects it as a result.

To Reproduce
Steps to reproduce the behavior:

$ cd $(mktemp -d)
$ export GOPATH=$(pwd)
$ export GO111MODULE=on
$ export GOPROXY=direct
$ export GOSUMDB=off
$ go get -d github.com/alessiosavi/[email protected]
go: finding github.com/alessiosavi/GoGPUtils v0.0.9
go: downloading github.com/alessiosavi/GoGPUtils v0.0.9
go: extracting github.com/alessiosavi/GoGPUtils v0.0.9
-> unzip /tmp/NPdspiwu/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"
go get github.com/alessiosavi/[email protected]: unzip /tmp/NPdspiwu/pkg/mod/cache/download/github.com/alessiosavi/!go!g!p!utils/@v/v0.0.9.zip: case-insensitive file name collision: "tests/fileutils/FindMe.txt" and "tests/fileutils/findme.txt"

Expected behavior
It should work without an error.

Additional context
There is an open issue in the Go issue tracker about documenting the restrictions on contents that can be a part of modules. See golang/go#33778.

/cc @jayconrod FYI.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.