我刚刚意识到我需要在一个方面同步大量的数据收集代码,但性能是一个真正的问题.如果性能下降太多,我的工具将被抛弃.我将单独编写int和long,以及各种数组,ArrayLists和Maps.将有一个应用程序的多个线程将进行将由我的方面拾取的函数调用.我应该注意哪些事情会对绩效产生负面影响?什么代码模式更有效?
特别是我有一种方法可以调用许多其他数据记录方法:
void foo() {
bar();
woz();
...
}
Run Code Online (Sandbox Code Playgroud)
这些方法主要是添加方面字段的递增
void bar() {
f++; // f is a field of the aspect
for (int i = 0; i < ary.length; i++) {
// get some values from aspect point cut
if (some condiction) {
ary[i] += someValue; // ary a field of the aspect
}
}
}
Run Code Online (Sandbox Code Playgroud)
我应该单独同步foo,bar,woz和其他人,还是应该将bar,woz等中的所有代码移动到foo中并同步它?我应该this在特定创建的同步对象上进行同步:
private final Object syncObject = new Object();
Run Code Online (Sandbox Code Playgroud)
(参见这篇文章),或方法中的个别数据元素:
ArrayList<Integer> a = new ArrayList<Integer>();
void bar() {
synchronize(a) { …Run Code Online (Sandbox Code Playgroud) 我曾与几个大型数据库合作,存储过程的名称非常不同:
SP_PrefixXXX
PrefixYyyXxx
Prefix: Rep, Act
Run Code Online (Sandbox Code Playgroud)
什么是命名的最佳实践?我该如何以正确的方式组织它们?
也许我有一个后Ballmer-Peak时刻.我希望有人可以向我指出明显的问题.
为什么此代码在右键单击时生成上下文菜单:
<Canvas Background="Transparent">
<Canvas.ContextMenu>
<ContextMenu>
<TextBlock>WTF?</TextBlock>
</ContextMenu>
</Canvas.ContextMenu>
</Canvas>
Run Code Online (Sandbox Code Playgroud)
并且此代码不会生成上下文菜单:
<Canvas>
<Canvas.ContextMenu>
<ContextMenu>
<TextBlock>WTF?</TextBlock>
</ContextMenu>
</Canvas.ContextMenu>
</Canvas>
Run Code Online (Sandbox Code Playgroud) 我想在整个我的WPF应用程序中将Enter键解释为Tab键,也就是说,当我的应用程序中的任何地方用户按Enter时我想要聚焦下一个可聚焦控件,除非按钮被聚焦.在应用程序生命周期中有没有办法做到这一点?谁能举个例子?
非常感谢!
不确定这是否属于社区维基...
有人可以提供一些关于如何成功构建不依赖于JavaScript的ASP.NET站点的一般指导原则吗?我的理解是,我应该在没有JavaScript的情况下构建一个功能性站点,并使用它来增强用户体验.说起来容易做起来难......我怎样才能确保我的网站在没有JavaScript的情况下无法启用JavaScript并尝试它?或者这是经验带来的东西?
我正在尝试制作一个需要使用反射的maven插件.我想要一个项目来运行插件,并在项目中为它提供类的全名,插件将通过反射加载它以从中获取信息.
但是类加载器有些奇怪,因为它在我使用时找不到类
Class.forName("package.MyClass");
Run Code Online (Sandbox Code Playgroud)
看看这里,我无法弄清楚我的插件的类加载器,当在不同的项目中运行时,是否可以访问该项目的类.
我不知道是否有人注意到Eclipse有这个恼人的功能,它需要在悬停任何东西时显示一个无用的工具提示.
我想知道是否有人知道如何彻底杀死Eclipse/Aptana中的所有工具提示行为?
谢谢
我是做从练习YAHT的递归数据类型部分时,发现写的listFoldr功能有点挑战性(主要是因为我真的不明白之间的差别foldl,并foldr在第一次).当我终于意识到foldr函数是如何工作的时候,我决定简单地交换函数参数就可以将我的listFoldl函数更改为listFoldr函数了:
listFoldl f i [] = i
listFoldl f i (x:xs) = listFoldl f (f i x) xs
listFoldr f i [] = i
listFoldr f i (x:xs) = listFoldr f (f x i) xs
Run Code Online (Sandbox Code Playgroud)
这似乎工作(我做了比这更多的测试):
Main> foldr (-) 4 [1, 2, 3]
-2
Main> listFoldr (-) 4 [1, 2, 3]
-2
Run Code Online (Sandbox Code Playgroud)
但是练习的解决方案与我的不同.他们listFoldl与我的完全一样,但看看他们listFoldr:
listFoldr f i [] = i
listFoldr …Run Code Online (Sandbox Code Playgroud) java ×2
wpf ×2
.net ×1
asp.net ×1
aspectj ×1
brushes ×1
c# ×1
c++ ×1
combinators ×1
eclipse ×1
fold ×1
haskell ×1
javascript ×1
loops ×1
maven-2 ×1
maven-plugin ×1
performance ×1
podcast ×1
sql ×1
sql-server ×1
t-sql ×1
vector ×1