我需要在网页上获取和显示数据,其记录数量可能会因大约500条记录到100万条记录的过滤器而异.
缓存在这里会有用吗,因为我认为记忆中的百万记录不是一个好主意.SqldataReader?
当然,分页是必须实现的.显示100万条记录是最糟糕的情况(All filter使用案例中的愚蠢!).
我应该使用连接架构(SqlDataReader)还是断开连接的架构(DataSet)?
在约翰内斯有价值的答案之后编辑并改进了我的问题
bool b = true;
volatile bool vb = true;
void f1() { }
void f2() { b = false; }
void(* volatile pf)() = &f1; //a volatile pointer to function
int main()
{
//different threads start here, some of which may change pf
while(b && vb)
{
pf();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,让我们忘记同步一段时间.问题是b是否必须声明为volatile.我已经阅读了标准并且知道了易失性语义的正式定义(我甚至几乎理解它们,这个词几乎是关键).但是在这里让我们有点不正式.如果编译器在循环中看到b没有办法改变b,那么除非b是volatile,否则它可以优化它并假设它相当于while(vb).问题是,在这种情况下,pf本身是易失性的,编译器允许假设b在循环中不会改变,即使b不是易失性的吗?
请不要提出解决这段代码风格的评论和答案,这不是一个现实世界的例子,这是一个实验性的理论问题.评论和答案除了回答我的问题之外,还更详细地讨论了挥发性的语义,你认为我误解了这些语言是非常受欢迎的.
我希望我的问题很明确.TIA
再次编辑:
这个怎么样?
bool b = true;
volatile bool vb = true;
void f1() {}
void f2() {b = false;}
void (*pf) () = &f1; …Run Code Online (Sandbox Code Playgroud) @echo off
SET first=0
FOR %%N IN (hello bye) DO (
SET first=1
echo %first%
echo %%N
)
Run Code Online (Sandbox Code Playgroud)
似乎变量"first"始终为0.为什么?
可以使用哪些编程语言来开发Android应用程序?
是否有计划在未来扩展Android支持的编程语言数量?
我在Cocoa中有包含Quartz-2D参考(描述颜色,填充图案,渐变和阴影)的对象.我想NSCoding在我的对象中实现协议,因此需要序列化那些不透明的Quartz-2D结构.
可能的解决方案可能是
在我的对象中定义一组属性,允许在需要时从头开始设置数据结构.那些可以很容易地序列化.示例:存储四个用于红色,绿色,蓝色和alpha的浮动,然后使用CGColorCreate.缺点:信息重复,因此潜在的一致性和(迄今为止微小的)空间消耗问题.我需要手动编写属性设置器,以便在组件发生更改时重新创建Quartz结构.这会大大增加我的代码.
使用Quartz函数读出属性.例如:使用CGColorGetComponents的颜色.缺点:它似乎适用于颜色.但是没有其他结构的等效函数,所以我不知道它如何适用于渐变,阴影,阴影等.
直接从原始的不透明结构中读出属性.缺点:正如文档所说,结构应该是不透明的.因此,如果发生了变化,我的代码就会破裂.(苹果当然不会提供像CGColorGetComponents应该这样做的功能.)此外,像CGFunctionRef内部的东西CGShadingRef真的会要求麻烦.
序列化Quartz结构的最佳实践是什么?
我在这里有一个非常直截了当的问题.我需要从API中获取JSON并将其转换为我为它们创建的对象.
到目前为止,它会将它们反序列化为我的列表,但每个Metric对象都具有空值
JSON即将推出
{
"metrics": [
{
"metric": {
"type": 1,
"name": "slide-11-start",
"value": "1287249598295",
"sessionID": ""
}
},
{
"metric": {
"type": 1,
"name": "slide-21-start",
"value": "1287249601368",
"sessionID": ""
}
},
{
"metric": {
"type": 7,
"name": "resolution",
"value": "1680x1050",
"sessionID": ""
}
},
{
"metric": {
"type": 6,
"name": "OS",
"value": "Linux",
"sessionID": ""
}
},
{
"metric": {
"type": 5,
"name": "browser",
"value": "Netscape",
"sessionID": ""
}
}
]
Run Code Online (Sandbox Code Playgroud)
}
度量对象
public class Metric {
private int …Run Code Online (Sandbox Code Playgroud) 当谈到正则表达式时,我只是一个菜鸟.我知道Perl在regexp上很棒,我不太了解Perl.最近开始学习JavaScript并且遇到了用于验证用户输入的正则表达式...没有使用它们.
JavaScript regexp与Perl regexp相比如何?共同点和不同点?
是否可以在Perl中使用所有用JS编写的regexp,反之亦然?
类似的语法?
可以使用哪些编程语言来开发iPhone,iPod Touch和iPad(iOS)应用程序?
还有计划在未来扩展iOS支持的编程语言数量吗?
我希望在XAML中设置一个UserControl成为Content另一个UserControl,就像你可以设置Button's Content为任何东西一样.
假设我的"外部" UserControl看起来像这样:
<MyUserControl>
<Grid>
<Border FancyPantsStyling="True">
<-- I want to insert other controls here -->
</Border>
</Grid>
</MyUserControl>
Run Code Online (Sandbox Code Playgroud)
我想以这种方式实例化:
<local:MyUserControl>
<local:MyUserControl.Content>
<local:AnotherControl />
</local:MyUserControl.Content>
</local:MyUserControl>
Run Code Online (Sandbox Code Playgroud)
如何设计MyUserControl将其渲染Content到特定位置?
我正在考虑建立一个新的,轻量级的数据库人口框架.我绝对讨厌dbunit.在我做之前,我想知道是否有人已经这样做了.
我不喜欢dbunit的事情:
1)不推荐使用最简单的编写和入门格式.他们希望您使用膨胀的格式.有些甚至需要xml架构.好吧,无所谓了.
2)它们不按您编写的顺序填充行,但是在顺序表中是在xml文件中定义的.这非常糟糕,因为您无法以外键约束不会导致问题的方式对数据进行排序.这只会迫使你彻底解决它们的麻烦.
这也会浪费时间并使你的junit基类膨胀,以包含禁用外键约束的代码.您可能必须测试数据库类型(hsqldb等)并以特定于数据库的方式禁用它们.这很糟糕.
如果dbunit有助于自动禁用外键约束作为其框架的一部分,但它们不会这样做.他们确实跟踪方言......所以为什么不使用它们呢?最终,所有这一切都迫使程序员浪费时间而不是快速起床和测试.
3)XML是一种痛苦的写作.我不需要多说这个.他们也提供了很多方法,我认为这只会使问题复杂化.只需提供一个非常可靠的方法并完成它.
4)当你的数据变大时,跟踪id及其一致/正确的关系是一种巨大的痛苦.
另外,如果你没有在一个月的项目上工作,你怎么记得user_id 1是管理员,user_id 2是业务用户,user_id 3是工程师而user_id 4是其他什么?回去检查这是浪费更多时间.除了任意数字之外,应该有一种有意义的方法来检索它.
5)这很慢.我发现除非使用hsqldb,否则它会非常缓慢.它不一定是.还有很多方法可以搞乱其配置,因为"开箱即用"并不容易.有一个驼峰,你必须通过它来使其正常工作.所有这一切都鼓励人们不要使用它,或者在他们开始使用它时感到生气.
6)有些值往往会重复很多,比如日期.指定默认值,甚至让框架自动设置默认值是很好的,即使没有告诉它将默认值放在那里.这样,您可以使用所需的值创建对象,并将其余部分保留.如果不需要,这肯定会指定列的每个角落和裂缝.
7)最令人烦恼的可能是第一个条目必须包含所有值 - 甚至是空占位符 - 或者将来的行不会选择您实际指定的列.
DBunit没有将[NULL]转换为实际空值的合理默认值.您必须手动添加它.告诉我,谁没有用dbunit做到这一点?每个人都有.它应该不是这样的!
这意味着如果你有一个多态对象,你必须声明第一行中每个子类的连接表的所有外键,即使它们是null.如果为所有子类模式执行表,则仍必须指定第一行上的所有字段.这太可怕了.
有什么东西可以满足我,或者我应该成为更好的数据库测试框架的下一个框架开发人员?