问题列表 - 第39220页

如何在C#中为持久集合设计api?

我正在考虑在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用户?

编辑:

  • 为了清楚起见,我只是询问API.Clojure已经有了用Java编写的实现.
  • 通过使用带有对每个操作进行COW的真实集合的引用的结构,当然可以创建这样的接口.使用引用计数将是一种优化,以避免不必要的COWing,但显然不可能使用合理的API.

c# api-design clojure persistent

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

如何遍历TI-83计算器程序中的列表

我创建了一组程序来使用各种近似方法(中点,梯形,辛普森)为我的微积分类计算图形下的面积.

以下是我的一个程序(中点)的示例:

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这样的事情.

list ti-basic

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

为hibernate和@Transactional配置spring数据源

此时我正在使用带有@Transactional注释的DriverManagerDataSource来管理事务.但是所有事务都非常慢,可能是因为数据源每次都打开和关闭与db的连接.

我应该使用什么数据源来加速交易?

java spring hibernate datasource transactions

3
推荐指数
1
解决办法
8422
查看次数

用PHP连接到WebDAV?

我想使用PHP连接到WebDAV,并能够上传文件等.但是,我无法弄清楚如何连接它.我想它最终会像打开一个套接字并发送正确的头文件/命令一样简单,但我不知道我需要发送什么.我想在没有额外库/类的情况下这样做.

谁能指出我正确的方向?

php upload webdav fsockopen

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

如何以编程方式访问DisplayObject的所有子项?

如何使用代码访问DisplayObject的所有子项?(我正在寻找类似的东西movieclip.children)

我在两种情况下使用它:

1)循环并重新定位封闭的MovieClip的所有子节点.

要么

2)循环并删除MovieClip的所有子项

此外,这是一个Flash CS5项目.

actionscript displayobject actionscript-3 flash-cs5

3
推荐指数
1
解决办法
4394
查看次数

如何引用visualforce中指定的html元素id并传递给javascript函数?

我有一个生成输入文本字段的顶点标记.

<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)

javascript salesforce visualforce apex-code

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

您对.net建议使用什么测试框架?

我是vb.net程序员.我想开始为我的Web应用程序编写单元和用户界面测试.我想听听你为编写这些测试建议的框架?

我的要求是我必须能够与Team Foundation Build Server一起使用该软件,如果框架的供应商是Microsoft,那将是完美的.

请给我一些建议并写下几个词,为什么你选择技术是你认为最好的.

.net vb.net unit-testing .net-3.5

3
推荐指数
2
解决办法
944
查看次数

XCode 3.2.5 Base SDK缺失,只能编译为模拟器

我用了这个答案:安装xCode 3.2.3 w/iPhone SDK 4,得到"Base SDK missing",无法看到其他SDK而且不起作用.我仍然有"Base SDK Missing",我只能选择要编译的模拟器.我已准备好进行设备测试,但Active Executable列表中没有iPhone.

我刚刚更新到最新的4.2和3.2.5 XCode

sdk xcode ios

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

为什么这个Sql语句(带有2个表连接)需要5分钟才能完成?

更新:下面添加了3个更新

以下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)

更新#2 - 添加非聚集索引后

添加非聚集索引后,它现在下降到4秒!哪个很棒.但为什么 …

sql sql-server performance sql-server-2008

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

面对3d重建

我有一个网络摄像头,围绕一个人的头部以给定的角度旋转,并为每一步获取一张图片.

我正在寻找一个免费的开源库,从这组获取的图像开始,我可以生成一个代表人头部的3D表面,或者至少是一个定义明确的3D点云.

即使WPF XAML更受欢迎,也接受任何3d格式.我在网上搜索了几个小时,但我找到的只有十分之一的学术文档和数百个断开链接......

我尝试过MeshLab,AForge.NET,EmGUCV,OpenVis3D,但没有人包含所需的功能,也没有很好的基本技术实现(例如密集功能3D三角化)

有什么建议吗?提前致谢 :)

3d 3d-reconstruction

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