- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 Python 背景,人们常说道歉比请求许可更容易。特别给出了两个片段:
if type(A) == int:
do_something(A)
else:
do_something(int(A))
try:
do_something(A)
except TypeError:
do_something(int(A))
然后在大多数使用场景下,当 A 通常是一个整数时,第二个会更快(假设 do_something 需要一个整数作为输入并且会相当迅速地引发它的异常)因为你失去了每个执行循环的逻辑测试,代价是一个更昂贵的异常(exception),但频率要低得多。
我想检查的是这在 C# 中是否成立,或者与异常相比逻辑测试是否足够快以使其成为一个小的极端情况?
哦,我只对发布性能感兴趣,对调试不感兴趣。
好吧,我的例子太模糊了试试这个:
天真的解决方案:
return float(A) % 20 # coerse A to a float so it'll only fail if we actually don't
# have anything that can be represented as a real number.
基于逻辑的解决方案:
if isinstance(A, Number): # This is cheaper because we're not creating a new
return A % 20 # object unless we really have to.
else:
return float(A) %20
基于异常的解决方案:
try: # Now we're doing any logical tests in the 99% of cases where A is a number
return A % 20
except TypeError:
return float(A) % 20
使用 FSO、数据库连接或网络上的东西的例子更好,但对于一个问题来说有点啰嗦。
最佳答案
可能不会。 .NET 异常相对昂贵。
出于这个原因,一些 .NET 函数提供了这两种变体。 (通常推荐返回成功代码的int.TryParse
,因为它比失败时抛出异常的int.Parse
更快)
但唯一重要的答案是您自己的分析数据告诉您的内容。如果您需要性能,那么您需要衡量、衡量、再衡量。
因为在我的电脑上,用我的代码,用我的.NET框架版本,在这个 在您的计算机上,使用您的 代码,使用您阅读时的 .NET 框架版本,时间可能不是最快的。
关于c# - 请求许可或道歉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6305551/
我正在设计一款支持签到的应用。 使用应用程序时的 GPS 权限是必须。但是有一个使用地理围栏自动 checkin 的可选功能,它需要“始终”gps 权限。 我想首先请求常规的“使用时”权限。然后,仅当
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 已关闭 8 年前。 Improve
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 7 年前。 Improve
最近,我研究了使用 OnGuard 来帮助诚实的人遵守他们的原则。我同意这里许多人表达的观点,即任何许可制度都无法保护您免受那些想要使用您的软件但不想付费的人的侵害。另一方面,我希望避免让其他人太容易
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我试图在计算机上设置Windows Developer许可证,但失败。 我正在运行Visual Studio 2012。 当我单击“项目”->“商店”->“获取开发者许可证”时,它向我显示一个信息对话
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
我想购买 Delphi Xe2 Pro。我独自一人使用它,我有 2 台电脑:一台在办公室,一台可移植用于“在路上”工作。Delphi Xe2 许可证不是很清楚,因此有什么办法可以为 2 台 PC 只购
我正在我的应用程序中安装 Android Licensing,我想知道什么是检查许可证的良好形式 - 每次或仅一次并保存它已被许可共享偏好的事实?我担心的是,如果用户处于离线状态,他们将被锁定在应用程
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
有人知道 WinRT 应用程序的许可是如何工作的吗? 我已向 Microsoft 申请了免费的开发人员许可证,这似乎与 temporarykey.pfx 或 appxmanifest 文件相关联。问题
我一直在网上搜索如何接受 Xcode,以便使用 Xcode 为 MAC 重新编译 MATLAB Windows 文件,但我没有找到任何相关的答案。 我在 MATLAB 中得到的错误消息是: Xcode
一些工作推到 QA,一些工作推到生产。 应该只允许开发人员推送到 QA,并且只允许 QA 推送到生产。除了制作两个单独的构建服务器(通过某种方式共享工件)之外,我如何限制权限? 最佳答案 您需要基于项
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
在 MacOS Catalina 上升级到 Xcode 11.1 后,运行一些命令(例如 git status)会导致 Xcode 声明必须同意许可。显然,我们可以运行 git status 和 gr
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
在 MacOS Catalina 上升级到 Xcode 11.1 后,运行一些命令(例如 git status)会导致 Xcode 声明必须同意许可。显然,我们可以运行 git status 和 gr
我正在构建一个小型 winforms 应用程序:ayende rhino licensing .许可工作正常,我可以创建许可并按我的选择分发它们。 问题是,如何让每个许可证只在一台机器上工作?我知道在
我是一名优秀的程序员,十分优秀!