标签: feedback

C#:这个基准测试类准确吗?

我创建了一个简单的类来对我的一些方法进行基准测试 但它准确吗?我对基准测试,计时等等都不熟悉,所以我想在这里可以请一些反馈.此外,如果它是好的,也许其他人也可以使用它:)

public static class Benchmark
{
    public static IEnumerable<long> This(Action subject)
    {
        var watch = new Stopwatch();
        while (true)
        {
            watch.Reset();
            watch.Start();
            subject();
            watch.Stop();
            yield return watch.ElapsedTicks;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以像这样使用它:

var avg = Benchmark.This(() => SomeMethod()).Take(500).Average();
Run Code Online (Sandbox Code Playgroud)

任何反馈?它看起来是非常稳定和准确的,还是我错过了什么?

c# benchmarking feedback

35
推荐指数
3
解决办法
3115
查看次数

UserVoice的替代客户反馈?

我们目前正在托管一个ASP.NET MVC应用程序,我们希望采用一个交钥匙的客户反馈系统. UserVoice绝对会满足我们的需求,但我们希望在继续前进之前考虑其他选择. GetSatification似乎提供了一个类似的模型.还有其他我们应该考虑的服务吗?

asp.net-mvc feedback user-feedback

29
推荐指数
2
解决办法
8975
查看次数

如果客户的回复在交付时为负,如何做出反应?

我是一名初级程序员.由于我的主管告诉我和客户坐在一起,我加入了.尽管成功(从我的程序员的角度来看)项目的交付,我看到了客户不满意的表情!

客户:你可以包括这个!
我们:不在规范中!
客户:常识!

作为程序员,您如何应对这种情况?

client project-management feedback

15
推荐指数
4
解决办法
1396
查看次数

使用不带返回类型的yield

我有一个很长的循环过程,如下所示:

public void Process()
{
    bool done = false;
    do {
        //do stuff
    }while (!done);
}
Run Code Online (Sandbox Code Playgroud)

我想切入比特并让调用例程在某种UI中显示我的进度.它是一个类库,因此调用者可能是任何东西(Console App,WinForms,WebApp,...).

如果我能做的话,这将是最简单的:

public void Process()
{
    bool done = false;
    do {
        //do stuff
        yield return;
    }while (!done);
}
Run Code Online (Sandbox Code Playgroud)

因此调用者可以继续调用该方法,直到完成为止.

这更像是BackgroundWorker的工作,但对于控制台应用来说这似乎是"错误的"......我不会总是需要多线程.或者是吗?我的意思是,是的,我可以让控制台的主线程等待它完成.

我的问题是:我可以使用"收益回报"的"零碎"延迟执行功能而不实际返回某些内容吗?

.net c# asynchronous feedback yield

15
推荐指数
4
解决办法
2191
查看次数

自动反馈JavaScript错误

如果在客户端运行JavaScript时出现错误(甚至是语法错误),有没有办法获得自动反馈?

我在考虑这样的事情:

<script src="debugger.js"></script>
<script>
    // some script with an error in it
</script>
Run Code Online (Sandbox Code Playgroud)

每次调试器发现错误时,它都会向服务器发送反馈.

javascript debugging feedback

14
推荐指数
2
解决办法
3075
查看次数

Cordova如何删除iOS上的"推送通知"

我使用Apache Cordova将我的应用程序提交到Apple Store,我从苹果那里收到一条警告:"缺少推送通知权限".

但似乎我从未在我的应用程序中使用"推送通知".如何从我的应用程序中删除它?它是Apache Cordova的默认设置吗?

feedback push-notification ios cordova

13
推荐指数
3
解决办法
8099
查看次数

有效地使用速率受限的API(Echo Nest)和分布式客户端

背景

Echo Nest有一个限速API.给定的应用程序(在使用API​​密钥的请求中标识)每分钟最多可以进行120次REST调用.服务响应包括对最后一分钟呼叫总数的估计; 重复滥用API(超出限制)可能导致API密钥被撤销.

当从单个机器(向客户端提供服务的Web服务器)使用时,很容易控制访问 - 服务器完全了解请求的历史并且可以正确地调节自身.

但我正在开发一个程序,其中分布式独立客户端并行发出请求.

在这种情况下,最不理解的是什么是最佳解决方案.一般来说,问题似乎是不可判定的 - 如果超过120个客户,都没有历史记录,同时提出初始请求,那么将超过费率.

但由于这是一个个人项目,客户使用预计会是零星的(突发性的),而且我的项目从未取得过巨大的成功,因此预计这不是一个大问题.更可能的问题是,有时候较少数量的客户希望尽快发出许多请求(例如,客户可能需要,特别是在第一次启动时发出数千个请求 - 这是可能的两个客户端将在大约相同的时间启动,因此他们必须合作共享可用带宽).

鉴于以上所有,客户端的适当算法是什么,以便适当地限制速率? 请注意,有限合作可能的,因为API会返回所有客户端在最后一分钟内的请求总数.

现行解决方案

我目前的解决方案(当问题写好时 - 一个更好的方法作为答案)非常简单.每个客户端都记录了最后一次呼叫的时间以及API在该呼叫上报告的最后一分钟的呼叫数.

如果呼叫数小于60(限制的一半),则客户端不会限制.这允许快速突发少量请求.

否则(即,当有更多先前的请求时),客户端计算它将需要工作的限制速率(即period = 60 / (120 - number of previous requests)),然后等待直到前一个呼叫和当前时间之间的间隙超过该时间段(以秒为单位;在60秒内分钟;每分钟120个最大请求数).这有效地限制了速率,因此,如果单独行动,它将不会超过限制.

但上面有问题.如果你仔细考虑,你会发现,对于大量的请求,单个客户端振荡并且没有达到最大吞吐量(这部分是因为"初始突发"突然"落在窗外",部分是因为算法没有充分利用其历史).多个客户将在一定程度上合作,但我怀疑它是最优的.

改善方案

我可以想象一个更好的解决方案,它使用客户端的完整本地历史记录,并使用隐藏马尔可夫模型模拟其他客户端.因此,每个客户端都会使用API​​报告来模拟其他(未知)客户端并相应地调整其速率.

我还可以设想一个单个客户端的算法,该算法逐步从小突发的无限行为过渡到许多请求的最佳有限行为,而不会引入振荡.

这样的方法存在吗?任何人都可以提供实施或参考吗?谁能想到更好的启发式方法?

我想这是一个已知的问题.在什么领域?排队理论?

我也猜测(参见前面的评论)没有最佳解决方案,并且可能有一些传说/传统/接受的启发式在实践中运作良好.我很想知道...目前我正努力在已知的网络协议中找出类似的问题(我想如果有的话,Perlman会有一些漂亮的解决方案).

在一个需要中央服务器来协助协作的解决方案中,我也感兴趣(在较小程度上,如果程序变得流行,将来参考).

放弃

这个问题根本不是对Echo Nest的批评; 他们的服务和使用条件都很棒.但是我越想到如何最好地使用它,它变得越复杂/有趣......

此外,每个客户端都有一个本地缓存,用于避免重复调用.

更新

可能是相关的论文.

algorithm networking feedback throttling distributed-computing

11
推荐指数
1
解决办法
2171
查看次数

我如何在.NET中进行连续测试?

当我进行Java开发时,我正在使用Infinitest进行连续测试,当我在.nET开发时,我真的很想念即时反馈

如何在C#和.NET中进行连续测试?

编辑:我不是在寻找持续集成,比如CruiseControl,TeamCity等.它是一个即时反馈工具,可以与我正在寻找的IDE一起使用

.net c# unit-testing feedback infinitest

10
推荐指数
2
解决办法
3118
查看次数

Android - 尝试发送电子邮件时收到错误"没有应用程序可以执行此操作"?

我正在制作一个应用程序,我将向我的客户提供反馈功能.为了实现这一点,我创建了一个小对话框,用户可以在其中输入反馈并将其发送到我的邮件ID.我尝试了一些我在互联网上找到的代码片段,但每当我尝试从模拟器或实际设备发送电子邮件时,我都会收到错误消息"没有应用程序可以执行此操作".

这是我的代码: -

public void emailDialog()
{
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setTitle("Feedback");
    alertDialog.setMessage("Please tell us that what you feel about our product. If you are facing any problem or found any bug then please report to us. Your review is important to us. Thanks!!");
    final EditText input = new EditText(this);
    input.setLines(8);
    alertDialog.setView(input);
    alertDialog.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            String value = input.getText().toString();
            String address = "varundroid@gmail.com";
            String subject = "FeedBack";
            final Intent emailIntent = …
Run Code Online (Sandbox Code Playgroud)

email android feedback dialog

10
推荐指数
1
解决办法
9964
查看次数

Android GCM是否与iOS推送通知反馈服务等效?

我们的webapp会向iOS和Android设备发送推送通知请求.

对于iOS,Apple推送通知服务具有反馈服务,因此您可以检测哪些设备已卸载您的应用程序,然后将其从数据库中删除.

Android GCM是否有类似的反馈服务?如果没有,如何检测哪些Android用户不再安装该应用?

service android feedback apple-push-notifications google-cloud-messaging

10
推荐指数
1
解决办法
6280
查看次数