为什么在C#中示例一个有效的,可编译的并且只是包装而示例B将无法编译?
一个
int val = 0;
val = val + Int32.MaxValue +2;
Run Code Online (Sandbox Code Playgroud)
要么
int val = Int32.MaxValue;
val++;
Run Code Online (Sandbox Code Playgroud)
乙
int val = 0;
val = 2147483647 + 1;
Run Code Online (Sandbox Code Playgroud)
要么
int val = 0;
int val = Int32.MaxValue + 1;
Run Code Online (Sandbox Code Playgroud)
默认情况下,我知道默认情况下不会检查算术异常,除非您使用配置中的checked方法,块或属性明确地这样做.我的问题更多地涉及编译器然后如何发生算术异常.
我们正在运行一个在Tomcat上运行的Rails上写的JRuby的小型Web应用程序.我们正在使用与另一个生产Web应用程序共享的Spring后端.不幸的是,我们一直遇到PermGen问题.
操作系统:Ubuntu Linux 2.6.24-24-server#1 SMP x86_64 GNU/Linux Java:1.6.0_21 Tomcat:6.0.28 JRuby:1.5.0 Rails:2.3.7
我们目前正在被谷歌,雅虎和百度抓获,因此网站使用率上升.我一直在使用JConsole监视Tomcat,我们肯定会看到有太多类的问题.当tomcat启动时,我们加载了大约12,000个类.8小时后,我们加载了近75,000个班级.PermGen同时从100MB增加到460MB.
类卸载工作正常,但它只在同一个8小时内卸载了~500个类.PermGen似乎永远不会被收集.
我们正在运行Tomcat的以下VM选项:
-Xms2048m -Xmx2048m -XX:MaxPermSize=512m -XX:PermSize=128m \
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:ParallelGCThreads=4 \
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
Run Code Online (Sandbox Code Playgroud)
显然存在某种泄漏.问题是在哪里?关于如何追踪谁以及对此负责的任何建议?我希望这是我们的一些非常愚蠢的错误,但我不知道从哪里开始.
任何建议将不胜感激.
编辑
看起来我们正在看到为每个传入请求创建一个新类.
编辑2
这肯定与JRuby有关.使用JConsole,我为类加载器启用了详细模式.以下是来自catalina.out的示例:
[Loaded anon_class1275113147_895127379 from file:/opt/apache-tomcat-6.0.28/webapps/notes/WEB-INF/lib/jruby-core-1.5.0.jar]
[Loaded anon_class1354333392_895127376 from file:/opt/apache-tomcat-6.0.28/webapps/notes/WEB-INF/lib/jruby-core-1.5.0.jar]
[Loaded anon_class1402528430_895127373 from file:/opt/apache-tomcat-6.0.28/webapps/notes/WEB-INF/lib/jruby-core-1.5.0.jar]
Run Code Online (Sandbox Code Playgroud)
那么问题就变成了如何追踪负责创建这些额外课程的一方?
编辑3
不确定这是否是问题所在,但不知何故,我们最终会遇到疯狂的类加载器.跑jmap -permstat PID了但得到了:
class_loader classes bytes parent_loader alive? type
total = 1320 135748 947431296 N/A alive=1, dead=1319 N/A
Run Code Online (Sandbox Code Playgroud)
这看起来有点过分了.大多数有三种类型的类加载器的一个:sun.reflect.DelegatingClassLoader,org.jruby.util.JRubyClassLoader或org.jruby.util.ClassCache$OneShotClassLoader.再次,样本输出来自jmap -permstat:
class_loader classes bytes parent_loader alive? …Run Code Online (Sandbox Code Playgroud) 我有一个来自外部源的函数,它返回一个包含2个uint16_t元素的数组(我将其转换为int).
我已经能够将这些转换为一个"大"int((i1 << 16) + i2)
现在我需要能够将它转换为float,保持点值在内存中.
任何人都可以提出方向或指出我正确的方向吗?
提前致谢!
我们正在构建一个具有相当广泛部署的自助服务终端应用程序.该应用程序位于浏览器中运行的Flash中,需要使用网络摄像头.目前,每个自助服务终端都会显示常用的Flash"你想让你的相机/麦克风使用"对话框,我想本地管理员可以点击,选择"记住"等.
鉴于这是一个自助服务终端应用程序,我们可以自己访问这些机器(或至少可以访问那些人),有没有办法预先对白名单进行播种,以便不显示对话框?
当我通常想要在所有迭代完成之前突破foreach循环时,我只是使用中断; 声明.例如
foreach($nodelist as $node) {
if($metCriteria) {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
但我的下一个例子中有一个switch语句.如果满足其中一个条件,那么我需要打破foreach循环.(中断的问题用于switch语句)
foreach($nodelist as $node)
{
switch($node->nodeName) {
case "a" :
//do something
break;
case "b" :
//break out of forloop
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我只是在switch语句中设置一个变量然后在它之后中断吗?例如
$breakout = false;
foreach($nodelist as $node)
{
switch($node->nodeName) {
case "a" :
//do something
break;
case "b" :
$breakout = true;
break;
}
if($breakout === true) break;
}
Run Code Online (Sandbox Code Playgroud)
这是最好的解决方案吗?还是这有另一种方式?
我安装了xcode 3.1.3和xcode 3.2.1
当然,我现在使用3.2.1与Sdk 4开发新的应用程序.但是,如果我喜欢在模拟iphone上测试一个用sdk 4编译的应用程序,那将会有3.0?
作为BaseSDk,我使用4.0和目标3.0
在xcode 3.1.3中我可以选择一个低至2.x的模拟器,但是使用sdk 4.0我只能选择4.0 iphone或3.2 ipad
示例>我知道4.0之前不支持iAd所以我将框架设置为弱.但只是为了确保一切正常,我真的想在模拟器中测试我的应用程序,该模拟器模拟带有3.0的iphone
克里斯
我想在COUNT中嵌入一个SELECT,但我找不到任何例子.
#pseudosql
SELECT a AS current_a, COUNT(*) AS b,
COUNT( SELECT FROM t WHERE a = current_a AND c = 'const' ) as d,
from t group by a order by b desc
Run Code Online (Sandbox Code Playgroud) 我setInstance(ByVal instance As UInteger)在我的VB.NET代码中使用库调用.我需要传递的参数是Integer.有什么我需要做的事情来将整数参数转换为无符号整数吗?这个数字保证是正数且小于10.
我希望能够在目录及其所有子目录中获取所有DLL文件的文件版本和汇编版本.我是编程的新手,我无法弄清楚如何使这个循环工作.
我有这个PowerShell代码来获取程序集版本(取自论坛):
$strPath = 'c:\ADMLibrary.dll'
$Assembly = [Reflection.Assembly]::Loadfile($strPath)
$AssemblyName = $Assembly.GetName()
$Assemblyversion = $AssemblyName.version
Run Code Online (Sandbox Code Playgroud)
这也是:
$file = Get-ChildItem -recurse | %{ $_.VersionInfo }
Run Code Online (Sandbox Code Playgroud)
如何从中循环,以便我可以返回目录中所有文件的汇编版本?
我有一个UITableView人口NSFetchedResultsController.初始提取工作正常.我可以添加,删除,修改等零问题.但我想在表中添加用户定义的排序.我这样做是通过改变NSFetchedResultsController使用不同的sortDescriptor设置和不同的设置sectionNameKeyPath.这是我更改提取的代码:
-(void)changeFetchData {
fetchedResultsController = nil;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Object" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSString *sortKey = @"sortKey";
NSString *cacheName = @"myNewCache";
BOOL ascending = YES;
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:sortKey ascending:ascending];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:sortKey cacheName:nil];
self.fetchedResultsController = aFetchedResultsController;
fetchedResultsController.delegate = self;
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors …Run Code Online (Sandbox Code Playgroud) iphone objective-c uitableview nsfetchedresultscontroller nsfetchrequest
iphone ×2
break ×1
c# ×1
c++ ×1
casting ×1
flash ×1
for-loop ×1
ios4 ×1
jruby ×1
jrubyonrails ×1
memory ×1
memory-leaks ×1
mysql ×1
objective-c ×1
parameters ×1
permgen ×1
php ×1
powershell ×1
sql ×1
tomcat ×1
uitableview ×1
unsigned ×1
vb.net ×1
webcam ×1