我正在考虑在C#中创建持久集合(列表或其他),但我无法找到一个好的API.
我在Clojure意义上使用' persistent ' :持久列表是一个列表,其行为就像它具有值语义而不是引用语义,但不会产生复制大值类型的开销.持久性集合使用copy-on-write来共享内部结构.伪代码:
l1 = PersistentList()
l1.add("foo")
l1.add("bar")
l2 = l1
l1.add("baz")
print(l1) # ==> ["foo", "bar", "baz"]
print(l2) # ==> ["foo", "bar"]
# l1 and l2 share a common structure of ["foo", "bar"] to save memory
Run Code Online (Sandbox Code Playgroud)
Clojure使用这样的数据结构,但是在Clojure中,所有数据结构都是不可变的.执行所有写时复制操作会产生一些开销,因此Clojure以瞬态数据结构的形式提供了一种解决方法,如果您确定不与其他任何人共享数据结构,则可以使用它.如果你只有对数据结构的引用,为什么不直接改变它而不是经历所有的写时复制开销.
获得此效率增益的一种方法是在数据结构上保留引用计数(尽管我不认为Clojure以这种方式工作).如果引用计数为1,那么您将保留唯一的引用,因此破坏性地进行更新.如果refcount更高,其他人也持有对它的引用,它应该表现得像一个值类型,所以copy-on-write不会打扰其他引用者.
在这种数据结构的API中,可能会暴露引用计数,这会使API严重降低可用性,或者无法进行引用计数,如果每个操作都是COW,则会导致不必要的写时复制开销,或API丢失它的值类型行为,用户必须管理何时手动执行COW.
如果C#具有结构的复制构造函数,那么这是可能的.可以定义一个包含对实际数据结构的引用的结构,并在结构的复制构造函数和析构函数中执行所有increment()/ decref()调用.
有没有办法在C#中自动执行引用计数或结构复制构造函数,而不会打扰API用户?
编辑:
我创建了一组程序来使用各种近似方法(中点,梯形,辛普森)为我的微积分类计算图形下的面积.
以下是我的一个程序(中点)的示例:
Prompt A,B,N
(A-B)/N->D
Input "Y1=", Y1
0->X
0->E
For(X,A+D/2,b-D/2,D)
Y1(x)+E->E
End
Disp E*D
Run Code Online (Sandbox Code Playgroud)
我不想将这些近似规则应用于函数(Y1),而是将它们应用于数据列表(L1).如何遍历列表?我需要能够获得列表中的最后一个索引,以便"For循环"有任何好处.我不能像在Java中那样做L1.length这样的事情.
此时我正在使用带有@Transactional注释的DriverManagerDataSource来管理事务.但是所有事务都非常慢,可能是因为数据源每次都打开和关闭与db的连接.
我应该使用什么数据源来加速交易?
我想使用PHP连接到WebDAV,并能够上传文件等.但是,我无法弄清楚如何连接它.我想它最终会像打开一个套接字并发送正确的头文件/命令一样简单,但我不知道我需要发送什么.我想在没有额外库/类的情况下这样做.
谁能指出我正确的方向?
如何使用代码访问DisplayObject的所有子项?(我正在寻找类似的东西movieclip.children)
我在两种情况下使用它:
1)循环并重新定位封闭的MovieClip的所有子节点.
要么
2)循环并删除MovieClip的所有子项
此外,这是一个Flash CS5项目.
我有一个生成输入文本字段的顶点标记.
<apex:page id="my_page">
<apex:inputText id="foo" id="c_txt"></apex:inputText>
</apex:page>
Run Code Online (Sandbox Code Playgroud)
当有人点击此字段时,我想执行javascript.
但是当我检查HTML源代码时,这个成为输入标签的顶点标签有(我认为)动态生成的部分.
<input type="text" size="50" value="Tue Nov 16 00:00:00 GMT 2010"
name="j_id0:j_id3:j_id4:c_txt" id="j_id0:j_id3:j_id4:c_txt">
Run Code Online (Sandbox Code Playgroud)
正如你可以看到id有垃圾部分:(
id="j_id0:j_id3:j_id4:c_txt"
Run Code Online (Sandbox Code Playgroud)
在我的Javascript中,我正在努力,getElementById('c_txt')但这当然不起作用.怎么处理这个?
UPDATE
好像我可以做到这一点,但没有工作......
<apex:includeScript value="{!URLFOR($Resource.datepickerjs)}"></apex:includeScript>
<apex:inputText id="foo" id="c_txt" onclick="javascript:displayDatePicker()" />
Run Code Online (Sandbox Code Playgroud)
datepickerjs
var elem = getElementById('c_txt');
alert(elem);
Run Code Online (Sandbox Code Playgroud)
警报显示'null',因此必定是错误的.
即使这个警报返回null ...
var targetDateField = document.getElementById('{!$Component.my_page:c_txt}');
alert(targetDateField);
Run Code Online (Sandbox Code Playgroud) 我是vb.net程序员.我想开始为我的Web应用程序编写单元和用户界面测试.我想听听你为编写这些测试建议的框架?
我的要求是我必须能够与Team Foundation Build Server一起使用该软件,如果框架的供应商是Microsoft,那将是完美的.
请给我一些建议并写下几个词,为什么你选择技术是你认为最好的.
我用了这个答案:安装xCode 3.2.3 w/iPhone SDK 4,得到"Base SDK missing",无法看到其他SDK而且不起作用.我仍然有"Base SDK Missing",我只能选择要编译的模拟器.我已准备好进行设备测试,但Active Executable列表中没有iPhone.
我刚刚更新到最新的4.2和3.2.5 XCode
以下sql语句需要5分钟才能完成.我只是.别.得到.它:(第一个表有6861534行.第二个表有一点点......第三个表(包含4个地理字段)与第一个表相同.
GEOGRAPHY第3个表中的那些字段..它们不应该与sql语句混乱......应该吗?可能是因为表太大(由于GEOGRAPHY字段),它有巨大的页面大小或什么东西..因此破坏COUNT的表扫描?
SELECT COUNT(*)
FROM [dbo].[Locations] a
inner join [dbo].[MyUSALocations] b on a.LocationId = b.LocationId
inner join [dbo].[GeographyBoundaries] c on a.locationid = c.LocationId
Run Code Online (Sandbox Code Playgroud)




根据要求,这里有一些关于GeographyBoundaries表的更多信息......

/****** Object: Index [PK_GeographyBoundaries] Script Date: 11/16/2010 12:42:36 ******/
ALTER TABLE [dbo].[GeographyBoundaries] ADD CONSTRAINT [PK_GeographyBoundaries] PRIMARY KEY CLUSTERED
(
[LocationId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
Run Code Online (Sandbox Code Playgroud)
添加非聚集索引后,它现在下降到4秒!哪个很棒.但为什么 …
我有一个网络摄像头,围绕一个人的头部以给定的角度旋转,并为每一步获取一张图片.
我正在寻找一个免费的开源库,从这组获取的图像开始,我可以生成一个代表人头部的3D表面,或者至少是一个定义明确的3D点云.
即使WPF XAML更受欢迎,也接受任何3d格式.我在网上搜索了几个小时,但我找到的只有十分之一的学术文档和数百个断开链接......
我尝试过MeshLab,AForge.NET,EmGUCV,OpenVis3D,但没有人包含所需的功能,也没有很好的基本技术实现(例如密集功能3D三角化)
有什么建议吗?提前致谢 :)
.net ×1
.net-3.5 ×1
3d ×1
actionscript ×1
apex-code ×1
api-design ×1
c# ×1
clojure ×1
datasource ×1
flash-cs5 ×1
fsockopen ×1
hibernate ×1
ios ×1
java ×1
javascript ×1
list ×1
performance ×1
persistent ×1
php ×1
salesforce ×1
sdk ×1
spring ×1
sql ×1
sql-server ×1
ti-basic ×1
transactions ×1
unit-testing ×1
upload ×1
vb.net ×1
visualforce ×1
webdav ×1
xcode ×1