45 Commits
Author SHA1 Message Date
noisyfox 0266ad9d59 Remove redundant lock.
Lock is evil.

This will actually affect the accuracy of GetDelta because
inboundDelta and outboundDelta may be calculated based on
the data collected at different time (eg. UpdateOutbound
get called before Interlocked.Read(ref _outbound)).

But that's not a problem. We can tolerate this little
inaccuracy. Besides, the _inbound, _outbound, _lastInbound
and _lastOutbound will be totally good because we use Interlocked.
2016-09-03 08:57:30 +08:00
noisyfox 65d72fdfed New approach to record and calculate inbound/outbound speed.
Use lock to sync between threads.This should fix issue #679
and other same issue.

Fix a bug in UpdateSpeed() that only save the first xxxSpeedRecord.
2016-08-26 13:49:44 +10:00
Syrone Wong 6a8a09983e Merge fixes from @GangZhuo, close #478 (#638)
Squashed commit of the following:

commit e280c2385c
Merge: 579039f 87aa9eb
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Wed Mar 16 04:02:27 2016 -0400

    Merge remote-tracking branch 'origin/master'

commit 579039fe40
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 21:45:23 2016 +0800

    log unhandle exception

commit 8d863f1d5f
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 21:44:54 2016 +0800

    fix Availability Statistics

commit b3ce1c698a
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 21:07:54 2016 +0800

    tiny refactor

commit 0f7d39e27e
Merge: bd7078a b01aced
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 20:02:58 2016 +0800

    Merge remote-tracking branch 'origin/master'

commit bd7078aa4f
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 20:01:58 2016 +0800

    tiny refactor

commit 49adb95b6e
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 03:44:26 2016 -0500

    log more Ping information for debug

commit 2aa0620ddd
Author: Gang Zhuo <gang.zhuo@gmail.com>
Date:   Fri Mar 4 03:04:10 2016 -0500

    reduce 3rd packages

[solve conflicts and squash to make history clean]
Signed-off-by: Syrone Wong <wong.syrone@gmail.com>
2016-08-05 11:05:16 +08:00
Gang Zhuo 4325b7f6f9 fix https://github.com/shadowsocks/shadowsocks-windows/issues/466 2016-03-02 21:00:57 -05:00
icylogic a99fef37d3 track multiple servers at the same time
Correct AvailabilityStatistics's behavior under special strategies like "LoadBalance", which may switch the server several times in a short period.
2016-03-01 21:32:43 +08:00
icylogic 7914d704d9 finish basic calculation 2016-03-01 14:53:57 +08:00
icylogic e0e0f646b0 fix the chart 2016-03-01 00:38:43 +08:00
icylogic 3b7cbf8020 fix weird logic for reading files. 2016-02-29 21:36:55 +08:00
icylogic 2086b5900d Merge remote-tracking branch 'upstream/master' into feature/statistics_ui
# Conflicts:
#	shadowsocks-csharp/Controller/Service/AvailabilityStatistics.cs
#	shadowsocks-csharp/Controller/Strategy/StatisticsStrategy.cs
#	shadowsocks-csharp/View/StatisticsStrategyConfigurationForm.cs
2016-02-29 20:56:01 +08:00
Licshee 281dfe028a . 2016-02-06 13:40:56 +08:00
icylogic 06d60f54bc redesign statistics form 2016-02-05 17:25:48 +08:00
icylogic bec1f808b3 add an option for Ping tests (disabled by default) and improve the readability of the code 2016-01-20 23:51:51 +08:00
icylogic 586caab7c4 follow CA1001: Types that own disposable fields should be disposable
https://msdn.microsoft.com/library/ms182172.aspx
2016-01-19 02:04:49 +08:00
icylogic ce67551d31 migrate to record data model 2016-01-19 01:46:21 +08:00
icylogic aef4b86c91 refactor AvailabilityStatistics to singleton 2016-01-18 17:21:06 +08:00
icylogic 6df589facf fix error caused by type migration 2016-01-18 16:42:33 +08:00
icylogic e0ee791e3b Merge remote-tracking branch 'upstream/master' into feature/statistics_ui 2016-01-18 16:38:02 +08:00
icylogic b735d59d8a remove ISP/Geolocation detection 2016-01-18 16:28:03 +08:00
icylogic 7599704d1f add speed to statistics 2016-01-18 01:31:50 +08:00
icylogic 5b895efdba Merge branch 'master' into feature/statistics_ui 2016-01-17 17:30:46 +08:00
Simon Dong 5a0a35a839 fix crashed when dns can't resolve server ip address. 2016-01-14 21:33:06 +08:00
Simon Dong 0b73017250 create statistics file if not exists. 2016-01-14 21:33:06 +08:00
kimw c2095b5ad7 migrated SimpleJson => Newtonesoft.Json, and of cause removed SimpleJson source files. 2016-01-05 03:45:26 +08:00
kimw 64390d45ac GetTempPath() now supports: return a full path with filename combined which pointed to the temporary directory 2016-01-04 23:56:43 +08:00
kimw 0b16ef7445 Merge upstream
# Conflicts:
#	README.md
#	shadowsocks-csharp/Controller/Service/AvailabilityStatistics.cs
#	shadowsocks-csharp/Controller/Service/PACServer.cs
#	shadowsocks-csharp/Controller/Strategy/SimplyChooseByStatisticsStrategy.cs
#	shadowsocks-csharp/Data/cn.txt
#	shadowsocks-csharp/Model/Configuration.cs
#	shadowsocks-csharp/Model/LogViewerConfig.cs
#	shadowsocks-csharp/View/LogForm.Designer.cs
#	shadowsocks-csharp/View/LogForm.cs
#	shadowsocks-csharp/View/MenuViewController.cs
2016-01-04 09:14:55 +08:00
Kaguya 87c5b23e21 https://github.com/shadowsocks/shadowsocks-windows/issues/399 2015-12-15 14:27:27 +08:00
icylogic 6bccd24e81 Catch All Exception for GetStringAsync 2015-10-01 12:04:32 +08:00
icylogic 6550c04650 escape comma for csv;
prevent a bug
2015-10-01 00:16:53 +08:00
icylogic b9632f8636 basic statistics form UI 2015-09-30 23:54:36 +08:00
icylogic 3f56deb418 init chart 2015-09-19 15:26:25 +08:00
icylogic 6c7f33dec3 ping asynchronously to accelerate evaluating 2015-09-14 21:22:36 +08:00
icylogic 107bc99282 move loading and filtering jobs to statistics service 2015-09-14 20:57:17 +08:00
kimw 0a733c61b8 fixed: standardize Logging usage
1. Add Logging.Info()
2. Console.WriteLine() -> Logging.Info()
3. Console.WriteLine() in exceptions -> Logging.LogUsefulException()
2015-09-14 14:58:46 +08:00
icylogic e45dd8b695 core functions finished 2015-09-03 23:37:43 +08:00
icylogic a30cb166a5 Merge branch 'hotfix/more_clear_log' into develop
# Conflicts:
#	shadowsocks-csharp/Controller/Service/AvailabilityStatistics.cs
2015-09-02 01:41:16 +08:00
icylogic 879163dc2b Add more clear log 2015-09-02 01:23:32 +08:00
icylogic aa2334c9fd Merge branch 'master' into feature/statistics_ui
# Conflicts:
#	shadowsocks-csharp/Controller/Service/AvailabilityStatistics.cs
#	shadowsocks-csharp/Controller/Strategy/StatisticsStrategy.cs
#	shadowsocks-csharp/View/LogForm.Designer.cs
#	shadowsocks-csharp/View/MenuViewController.cs
2015-09-02 00:51:14 +08:00
clowwindy c767f55b3c add portable mode 2015-08-19 21:39:06 -07:00
icylogic 7978817492 fixed #280, log "No such host is known" and other PingException 2015-08-17 11:32:03 +08:00
icylogic 99baeb89f3 log "No such host is known" exception 2015-08-17 11:28:41 +08:00
icylogic 34ab170e4c fix serveral minor bugs 2015-08-13 18:29:17 +08:00
icylogic c08463710e feature: get ISP 2015-08-13 04:11:34 +08:00
icylogic e15ba8dc8b Refactor code with syntactic sugars in c#. 2015-08-12 23:15:13 +08:00
icylogic 26557bfdc3 adjust interval of statistics 2015-08-11 12:17:03 +08:00
icylogic 0e4f0f17cd Add availability statistics service and a simple strategy
Strategy: Simply Choose By Statistics
2015-08-11 02:59:56 +08:00