小编Bre*_*ett的帖子

OSX上的单调时钟

CLOCK_MONOTONIC似乎不可用,所以clock_gettime已经用完了.

我在某些地方读过,mach_absolute_time()可能是正确的方法,但在阅读之后它是一个'cpu依赖值',它立即让我想知道它是否在下面使用rtdsc.因此,即使它是单调的,该值也可能随时间漂移.此外,线程关联性问题可能会导致调用函数产生有意义的不同结果(使其在所有内核中不是单调的).

当然,这只是猜测.有谁知道mach_absolute_time实际上是如何工作的?我实际上正在寻找clock_gettime的替代品(CL​​OCK_MONOTONIC ......或类似于OSX的东西.无论时钟源是什么,我都期望至少毫秒精度和毫秒精度.

我只想了解哪些时钟可用,哪些时钟是单调的,如果某些时钟漂移,有线程亲和性问题,所有Mac硬件都不支持,或者执行"超高"数量的cpu周期.

以下是我能够找到关于这个主题的链接(一些已经死链接,但在archive.org上找不到):

https://developer.apple.com/library/mac/#qa/qa1398/_index.html http://www.wand.net.nz/~smr26/wordpress/2009/01/19/monotonic-time-in -mac-os-x / http://www.meandmark.com/timing.pdf

谢谢!布雷特

macos posix timing objective-c clock

22
推荐指数
2
解决办法
1万
查看次数

如何从NSURL获取路径/目录组件?

我从NSSavePanel中检索了一个NSURL.我现在有这个NSURL,它给了我以下内容:

file://localhost/Users/brett/Documents/asdf%20asdf.json

现在,我很容易使用以下内容检索文件名:

[[[NSFileManager defaultManager] displayNameAtPath:pathAndFilename] stringByDeletingPathExtension]

这给了我正确的本地化文件名,如预期的那样: asdf%20asdf

那么,我如何获得路径,如下: file://localhost/Users/brett/Documents/

macos cocoa nsurl

16
推荐指数
2
解决办法
2万
查看次数

在双倍的MIN/MAX范围内,双重不能代表整数吗?

我意识到无论什么时候处理IEEE 754双打和浮点数,有些数字都无法表示,尤其是当一个数字试图表示小数点后面有大量数字的数字时.这是很好理解但我很好奇,如果在双(或浮点)的MIN/MAX范围内有任何整数不能表示,因此需要四舍五入到最接近的可表示的IEEE 754表示?

例如,非常大的数字有时以双精度或浮点数表示,即使它们是整数.显然使用直接向上的int64或一些这样的大整数数据类型会更好,但是人们仍然经常使用双数来表示大数.

有没有可以被称为不可表示的数字,或者你能给我一个数学上的原因,为什么它不会成为问题?

floating-point precision ieee-754

14
推荐指数
1
解决办法
3029
查看次数

我可以在Entity Framework Code First中禁用自动关系吗?

我注意到Entity Framework在其最新版本中仍然具有许多"自动化"功能.一如既往,这是一把真正的双刃剑.

具体来说,我正在使用OnModelBuilder事件使用fluentAPI(http://msdn.microsoft.com/en-us/library/hh295844(v=vs.103).aspx)在代码中动态创建我的模型.我有一大堆实体,并且它们并不都符合Microsoft"标准".例如,我的ID列名为Person_id而不是PersonId.因此,实体并不总是自动检测表上的主键,或者至少它似乎没有这样做.

我不介意在构建模型时明确,但令困扰的是,我并不总是确定实体将自动检测哪些属性和关系以及哪些属性和关系将错误地忽略或错误识别. 由于我的大多数实体也有一个带有辅助方法和属性的部分类(处理枚举的东西等),我非常担心有一天实体会自动创建不应映射的事物之间的映射(失败可能是实体或某些毫无戒心的程序员).

有没有办法可以禁用Entity的自动关系连接功能,以便我可以在我的OnModelBuilder方法中100%显式?或者,至少,我如何知道何时需要添加额外的映射详细信息(例如需要声明字段可选,或者何时不会自动检测特定的导航属性)?

谢谢!

.net entity-relationship entity-framework-4.1

8
推荐指数
1
解决办法
4564
查看次数

使用LINQ时谓词的顺序是否重要?

我理解以不同的顺序执行操作会产生不同的性能,例如以下慢查询之间的差异:

List<TestItem> slowResults = items.OrderBy(item => item.StringItem)
                                  .Where(item => item.IntItem == 100)
                                  .ToList();
Run Code Online (Sandbox Code Playgroud)

这个更快的一个:

List<TestItem> fastResults = items.Where(item => item.IntItem == 100)
                                  .OrderBy(item => item.StringItem)
                                  .ToList();
Run Code Online (Sandbox Code Playgroud)

但这不是我的问题:

我的问题是关于短路的性能,因为它与LINQ谓词有关.当我使用Where子句时,就像在这种情况下:

List<TestItem> results = items.Where(item => item.Item1 == 12 &&
                                             item.Item2 != null &&
                                             item.Item2.SubItem == 65 &&
                                             item.Item3.Equals(anotherThingy))
                              .ToList();
Run Code Online (Sandbox Code Playgroud)

参数的顺序不重要吗?例如,我会期望首先执行.Equals会导致整体查询速度变慢,因为Item1 == 12整数评估是一个更快的操作?

如果订单确实重要,那有多重要?当然,像.Equals这样的调用方法可能会比我只是比较几个整数时的速度大得多,但是与LINQ运行的"慢"相比,这是一个相对较小的性能损失吗?由于LINQ进行大量的方法调用,就像.Equals真的重要 - 因为 - 除非它被覆盖 - 它将执行本机框架代码,对吧?另一方面,标准的MSIL方法调用会明显变慢吗?

此外,是否有任何其他编译器优化此查询可能会加快这一点?

感谢您的想法和澄清!布雷特

.net c# linq optimization performance

8
推荐指数
1
解决办法
1710
查看次数

链接变量赋值如何在SQL中工作?

我正在分析存储过程中的一些旧SQL代码.

Declare @Var1 money, 
    @Var2 money, 
    @Var3 money, 
Run Code Online (Sandbox Code Playgroud)

等等...

Select @Var1 = OldValue, 
       @Var2 = @Var1, 
Run Code Online (Sandbox Code Playgroud)

等等...

所以我想知道这些分配在同一个select语句中是如何工作的.在调用select之后,我假设Var2 = OldValue,但我想确定.

这种情况有哪些规则?分配是按照声明的顺序执行的吗?如果是这样,在以下情况下将为Var2分配什么值:

Select @Var2 = @Var1,
       @Var1 = OldValue,
Run Code Online (Sandbox Code Playgroud)

谢谢!

sql t-sql sql-server variables

7
推荐指数
1
解决办法
524
查看次数

Rich文本格式是否已弃用?

来自富文本格式的维基百科页面(http://en.wikipedia.org/wiki/Rich_Text_Format):

截至2008年3月,当前版本为1.9.1.根据Microsoft的Office 2010资源工具包文档,Microsoft正在停止对RTF规范的增强.此外,Word 2010及更高版本中的某些新功能无法正确保存为RTF格式.[11]

请参考此处:http: //technet.microsoft.com/en-us/library/cc179199.aspx#BKMK_Changed

我正在努力包含一些静态的,格式化的文本,这些文本将从本地数据库中提取,并将由仅在内部使用的应用程序显示.

我应该通过.NET的内置RichTextBox使用RTF格式吗?微软的新OpenXML格式会在不久的将来被弃用吗?

是否最好完全跳过Rich Text并使用HTML格式?如果是这样,你会推荐什么.NET控件?

显然,我不想为这样一个微不足道的问题设计我自己的文本格式控件,但我不想浪费开发时间来实现几乎弃用的技术.

谢谢!

html wpf rtf openxml wpf-controls

7
推荐指数
1
解决办法
1773
查看次数

如何用文档装饰Objective C方法?

当我在键入Cocoa对象并在该对象上调用选择器时,我有时可以看到有关该方法的"文档"或"帮助"信息.例如,在我输入时[NSArray alloc],我看到两个帮助提示.一个用于NSArray,一个用于alloc.当我输入代码时,这两个都出现在弹出自动填充建议列表框中.

如何生成类似的方法/类修饰帮助提示,当我输入时会出现这些提示?我想在输入自定义类名和自定义方法时看到我的注释.我怎样才能做到这一点?

例如,C#通过XML文档提供此功能,该文档可以放在任何方法,类或接口/协议声明之前.

documentation objective-c

6
推荐指数
1
解决办法
380
查看次数

MinGW未定义对malloc,free,sprintf,_beginthreadex的引用

我正在使用MinGW.我有一些代码调用malloc和一些其他通用函数.当我输入:

gcc TestCode.c
Run Code Online (Sandbox Code Playgroud)

我得到一个a.exe文件,它工作得很完美,我没有得到任何警告.

如果我输入:

gcc -c TestCode.c -o TestCode.o
ld *.o
Run Code Online (Sandbox Code Playgroud)

我得到了一大堆警告,例如:

TestCode.o:TestCode.c:(.text+0xa): undefined reference to `__main'
TestCode.o:TestCode:(.text+0x2e): undefined reference to `printf'
TestCode.o:TestCode:(.text+0x42): undefined reference to `_strerror'
TestCode.o:TestCode:(.text+0x69): undefined reference to `snprintf'
TestCode.o:TestCode:(.text+0x7e): undefined reference to `malloc'
TestCode.o:TestCode:(.text+0x93): undefined reference to `_strerror'
TestCode.o:TestCode:(.text+0xb1): undefined reference to `sprintf'
TestCode.o:TestCode:(.text+0xcf): undefined reference to `free'
Run Code Online (Sandbox Code Playgroud)

我假设这是我如何调用链接器的问题.因此,如果不清楚问题是什么,我只会发布代码.我希望这是一个简单的解决方案,我只是忘记在链接时包含一些超级明显的库.

c mingw build ld

5
推荐指数
1
解决办法
2万
查看次数

recv(...)是这样运作的吗?

我将套接字的超时设置SO_RCVTIMEO为10秒.此问题特定于流套接字(TCP).当我recv(...)从手册页中收集的内容打电话时,这就是我所期待的:

  1. 如果远程关闭连接,则无论超时如何,它都会立即返回0.
  2. 如果超时,并没有收到数据,那么我们得到一个返回-1和errnoEAGAINEWOULDBLOCK.
  3. 如果套接字上发生错误,它会立即返回-1,然后errno设置正确.
  4. 如果数据可用,套接字将等待,直到超时发生,然后再返回.这次它将在10秒内返回,并收到总字节数.

这是正确的行为吗?我只是想确保我正确理解文档.

谢谢!布雷特

c sockets posix recv

5
推荐指数
1
解决办法
309
查看次数