Commit Graph

158 Commits

Author SHA1 Message Date
Peng Gao f26e1d0b06 Fix #3, use put common code in individual a file
If there are more than one cache map to be generated
for different types, a redeclaration error will occur,
to avoid this error, put common part in a single file.

Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-09-01 11:51:17 +08:00
Peng Gao f7f14e07e4 Support zero value in template
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-31 14:04:57 +08:00
Peng Gao 4378c9a40e Fix type finding bugs and add zero vaule for func
1.  In the main loop to find typeName, it will
    continue find type if a type has been already found,
    which will make empty string overwite it latter,
    so if it is found first time, assuming this is the
    type we want, and break out the loop.
2.  Add support for zero value for func type.
3.  If the type not a builtin type (*ast.Ident),
    assuming it is a composite structure, like
    *ast.StructType.

Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-31 12:28:51 +08:00
Peng Gao ebc1ab826e Add decrement and increment for numberic types
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-29 18:58:22 +08:00
Peng Gao 3cceb4fab0 Update README, ci, pa
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-27 20:00:58 +08:00
Peng Gao 5b06290188 Support zerovalue and fix tests
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-27 19:46:10 +08:00
Peng Gao 987311e3b4 Refactor code
1.  Add benchmark performance in README.md
2.  Use an Attr as argument for New to initiate a cache, in this
    way, more default settings can be supported.
3.  Add fast way for delete method, if no onEvicted callback
    function set.
4.  Use bool to indicate k existence in Get method to avoid
    pointer escape (which leads to memory allocation on heap),
    reference link below to get detail information.
    https://groups.google.com/forum/#!topic/golang-nuts/1WCWAtOsyDU

Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-27 19:42:15 +08:00
Peng Gao 96d0b686a8 Update LICENSE and CONTRIBUTORS
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-26 14:05:15 +08:00
Peng Gao 96eafc2dcd Add generator for code
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-11 16:42:28 +08:00
Peng Gao 4606d7097e cachemap: modify go-cache by using certain type
Temporaliy use int as ValueType to pass the test.

Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2016-08-11 11:58:16 +08:00
Patrick Mylund Nielsen 1881a9bccb Merge pull request #29 from darrenmcc/master
added go syntax highlighting to README
2016-01-27 12:00:04 -05:00
Darren McCleary da6326cd69 added go syntax highlighting to README 2016-01-27 11:56:21 -05:00
Patrick Mylund Nielsen 5849ccb308 remove mu.RUnlock call from get 2016-01-08 15:02:42 -05:00
Patrick Mylund Nielsen 721cc9438c Add BenchmarkRWMutexInterfaceMapGetString 2015-12-03 09:55:58 -05:00
Patrick Mylund Nielsen 8c41258ef3 Add BenchmarkRWMutexInterfaceMapGet 2015-12-03 09:40:14 -05:00
Patrick Mylund Nielsen faf83836bd Change GitHub repository URLs in README 2015-12-02 14:32:12 -05:00
Patrick Mylund Nielsen 66bf7b7a45 Update README to point to new repository URL 2015-12-01 11:18:46 -05:00
Patrick Mylund Nielsen d461c5d2dd 'Inline' set in Set, and do time checks before the lock 2015-12-01 11:08:43 -05:00
Patrick Mylund Nielsen 76f1250a65 Make OnEvicted() a little faster 2015-11-30 16:18:49 -05:00
Patrick Mylund Nielsen 7c1e7f5829 go fmt 2015-11-30 16:04:57 -05:00
Patrick Mylund Nielsen 9fc6f9c73f Add expiring/notexpiring sharded cache benchmarks 2015-11-30 16:04:49 -05:00
Patrick Mylund Nielsen afadf13f9f Back to UnixNano(), syscall dependency isn't worth a few nanoseconds better performance 2015-11-30 15:12:19 -05:00
Patrick Mylund Nielsen f6cdd07cbb Merge branch 'timeval' 2015-11-30 15:02:11 -05:00
Patrick Mylund Nielsen 2f0c74ebb8 Use intermediary timevals 2015-11-30 15:02:02 -05:00
Patrick Mylund Nielsen 2f60853f80 No need for emptyTime anymore 2015-11-30 14:49:18 -05:00
Patrick Mylund Nielsen 01842a547c Use timevals 2015-11-30 14:47:22 -05:00
Patrick Mylund Nielsen 1924ec3baf Remove expired() since it's no longer used (because of the inlining) 2015-11-30 14:14:52 -05:00
Patrick Mylund Nielsen 8084bd02b5 Inline expiration checks manually for performance 2015-11-30 14:12:45 -05:00
Patrick Mylund Nielsen eb4f9f6b2f Use UnixNano int64s instead of Time 2015-11-30 13:54:01 -05:00
Patrick Mylund Nielsen 31c7be0bed 'Inline' Get and Expired 2015-11-30 13:50:17 -05:00
Patrick Mylund Nielsen 4e0d34ef00 Only get the current time once in the DeleteExpired loop 2015-11-30 13:39:27 -05:00
Patrick Mylund Nielsen a45ed98559 Add benchmarks that use expiring items (time.Now calls) and rename BenchmarkDeleteExpired to BenchmarkDeleteExpiredLoop for clarity 2015-11-30 10:45:30 -05:00
Patrick Mylund Nielsen 28ab885a1a Make BenchmarkDeleteExpired more meaningful 2015-11-28 15:13:26 -05:00
Patrick Mylund Nielsen cf4e165754 Add IncrementInt benchmark 2015-11-28 14:56:23 -05:00
Patrick Mylund Nielsen 901b2413ee Improve cache locality by removing Item-related pointers 2015-11-28 14:47:46 -05:00
Patrick Mylund Nielsen 3d4d09ca0b Add a benchmark for DeleteExpired() 2015-11-28 14:35:38 -05:00
Patrick Mylund Nielsen 0ba3e0049c Update copyright years 2015-11-28 14:21:44 -05:00
Patrick Mylund Nielsen ac0fcef49b Clarify that the OnEvicted function isn't called when an item is overwritten 2015-11-28 12:27:08 -05:00
Patrick Mylund Nielsen e9441b12e0 Add mutex-using test condition to TestOnEvicted 2015-11-28 12:22:52 -05:00
Patrick Mylund Nielsen 3f2c810ea1 Add OnEvicted() 2015-11-27 22:00:08 -05:00
Patrick Mylund Nielsen a0136a8980 Don't expose the cache mutex 2015-11-27 13:03:24 -05:00
Patrick Mylund Nielsen a122e14c4b Merge pull request #23 from databus23/patch-1
Fix leaking the janitor ticker when shutting down
2015-10-13 08:21:26 -04:00
Fabian Ruff fe045e4040 Fix leaking the janitor ticker when shutting down 2015-10-13 12:55:54 +02:00
Patrick Mylund Nielsen 93d85800f2 README.md: Add missing 'time' import to example 2015-03-03 09:09:38 -05:00
Patrick Mylund Nielsen 03284ca422 Replace sharded hash function/misc mods 2014-12-22 10:37:59 -05:00
Patrick Mylund Nielsen 8a2f4f19ef go fmt 2014-12-22 02:48:52 -05:00
Patrick Mylund Nielsen e3a846e1f9 Clarify what NoExpiration and DefaultExpiration are 2014-12-22 02:47:08 -05:00
Patrick Mylund Nielsen a1dd6b7fff s/NewFrom/NewFrom()/ in NewFrom doc 2014-12-22 02:39:59 -05:00
Patrick Mylund Nielsen 9ea75a8586 s/NewFrom/NewFrom()/ in Load/LoadFile/Save/SaveFile docs 2014-12-22 02:37:46 -05:00
Patrick Mylund Nielsen 873e78f0db s/gob.Register/gob.Register()/ in NewFrom doc 2014-12-22 02:30:02 -05:00