如何判断我的应用程序运行的JVM是32位还是64位?具体来说,我可以访问什么功能或偏好来在程序中检测到这个?
我编写了一个bash脚本,它将输入文件作为参数并读取它.
此文件包含一些路径(相对于其位置)与使用的其他文件.
我希望脚本转到包含输入文件的文件夹,以执行更多命令.
那么,如何从输入文件中获取文件夹(以及文件夹)?(在linux中.)
因为我目前正在努力学习IBM Rational ClearCase,所以我想听听你的专业意见.
与其他版本控制系统(如Subversion或Git)相比,我对优缺点特别感兴趣.
我正在优化LZF压缩算法的纯java实现,它涉及大量的byte []访问和基本的int数学,用于散列和比较.性能确实很重要,因为压缩的目标是降低I/O要求.我没有发布代码,因为它尚未清理,并且可能会进行大量重组.
在我因为过早优化而受到攻击之前:基本算法已经非常出色,但Java实现的速度不到等效C的2/3.我已经用System.arraycopy替换了复制循环,致力于优化循环并消除了un - 需要的操作.
我大量使用bit twiddling并将字节打包为整数,以实现性能,以及移位和屏蔽.
出于法律原因,我无法查看类似库中的实现,并且现有库具有过于严格的许可条款.
另外:如果有人有详细说明Hotspot优化和分支性能的内容的链接,那么欢迎这些.我对字节码有足够的了解,网站分析字节码而不是源代码级别的性能会有所帮助.
这是从提供的HotSpot内部维基链接获取的:https://wikis.oracle.com/display/HotSpotInternals/RangeCheckElimination
HotSpot将消除所有for循环中的边界检查,具有以下条件:
例: int val = array[index*2 + 5]
要么: int val = array[index+9]
不: int val = array[Math.min(var,index)+7]
这是一个示例版本.不要窃取它,因为它是H2数据库项目的未发布版本的代码.最终版本将是开源的.这是对代码的优化:H2 CompressLZF代码
从逻辑上讲,这与开发版本相同,但是它使用for(...)循环来逐步执行输入,并使用if/else循环来实现文字和反向引用模式之间的不同逻辑.它减少了阵列访问和模式之间的检查.
public int compressNewer(final byte[] in, final int inLen, final byte[] out, int …Run Code Online (Sandbox Code Playgroud) java optimization performance jvm-hotspot bounds-check-elimination
在值得重用之前,缓冲区需要有多大的缓冲区?
或者,换一种方式:我可以重复分配,使用和丢弃byte []对象或运行池来保存和重用它们.我可能会分配很多经常被丢弃的小缓冲区,或者一些不会被丢弃的大缓冲区.汇集它们的大小比重新分配要便宜,小分配与大分配相比如何?
好的,具体参数.说英特尔酷睿2双核CPU,最新的虚拟机版本,适用于操作系统.这个问题并不像听起来那么模糊......一些小代码和一个图表可以回答它.
你发布了很多很好的一般规则和讨论,但这个问题确实要求数字.发布'em(和代码)! 理论很棒,但证据就是数字.如果各个系统的结果有所不同并不重要,我只是在寻找一个粗略的估计(数量级).似乎没有人知道性能差异是1.1,2,10或100+的因素,这是重要的.对于使用大型阵列的任何Java代码来说都很重要 - 网络,生物信息学等.
建议获得良好的基准:
我知道这是一个模糊且有点苛刻的问题.我会定期查看这个问题,答案会得到评论并持续评分.懒惰的答案不会(见下面的标准).如果我没有任何彻底的答案,我会附上一笔赏金.无论如何,我可能会额外奖励一个非常好的答案.
我正在开发一个库,为Java添加LZF压缩支持.该库通过添加额外的压缩级别(更多压缩)以及与来自C LZF库的字节流的兼容性来扩展H2 DBMS LZF类.我正在考虑的一件事是,是否值得尝试重用用于压缩/解压缩流的固定大小的缓冲区.缓冲器可以是~8kB,或~32kB,并且在原始版本中它们是~128kB.可以为每个流分配缓冲器一次或多次.我正在试图找出我想如何处理缓冲区以获得最佳性能,并着眼于将来可能的多线程.
是的,如果有人有兴趣使用它,库将作为开源发布.
我有一个问题,所有的权利都不应该失败,我不能为我的生活找出原因
INSERT INTO Grocery_Store_Prices(Store,Item,Brand,Price,Unit,Quantity,Note)
VALUES("Kroger","Cheesy Poof","Cartman",0.51,"fart",15,"what is going on");
Run Code Online (Sandbox Code Playgroud)
当我尝试运行查询时,我收到"INSERT INTO语句中的语法错误",并突出显示"注释"字段.如果我省略Note字段及其值,查询工作正常.有什么东西真的很明显我不见了,还是有一个Jet SQL怪癖埋在这里?
它所采用的表是:Grocery_Store_Prices
我想通过java程序登录ORKUT.我正在使用以下程序来完成它.我从一些网站上复制了它.现在我想将它用于ORKUT.但我对某些问题有一些疑问.
Q1.在哪里提供登录页面的URL(我想在新的HTTPGET(".....")中)?我是对还是不对?
Q2.传递给HTTPPost("")的构造函数的参数.如果我们必须在登录网页的html源代码中传递"form"元素的"action"属性的值,那么请确认它.
Q3.ORKUT登录页面的"form"元素具有该属性
onsubmit="return(gaia_onLoginSubmit());"
Run Code Online (Sandbox Code Playgroud)
由于存在上述属性,我是否需要对以下代码进行任何更改?
Q4.如何在登录后获取html网页源代码?
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
public class ClientFormLogin {
public static void main(String[] args) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("https://www.google.com/accounts/ServiceLogin?service=orkut&hl=en-US&rm=false&continue=http%3A%2F%2Fwww.orkut.com%2FRedirLogin%3Fmsg%3D0%26page%3Dhttp%253A%252F%252Fwww.orkut.co.in%252FHome.aspx&cd=IN&passive=true&skipvpage=true&sendvemail=false");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null) {
entity.consumeContent();
}
System.out.println("Initial set …Run Code Online (Sandbox Code Playgroud) 我正在从命令行使用perl regex操作来修改文件(在linux中),并想知道为什么它无法修改文件.这是正则表达式:
perl -i -pe 'undef $/; s#(<web-app[^>]*>).*?(</web-app>)#\1CHEESE\n\2#gsi' filePath/web.xml
Run Code Online (Sandbox Code Playgroud)
现在,这应该正确匹配多行块.但事实并非如此.样本输入:
<web-app xmlns= "http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<stuff goes here and tags and things>
</web-app>
Run Code Online (Sandbox Code Playgroud)
然而,没有任何改变.Dotall应该是匹配的,这适用于在线正则表达式测试工具,但是在Perl中失败了.我究竟做错了什么?
我正在尝试使用一些固定数据启动一个迷你Django测试服务器进行测试.
以交互方式(从REPL)循环运行时,它正确运行,当作为脚本的一部分执行时python myscript.py,它会失败.我猜测环境中有些不同,但是什么?
码:
import os
import sys
import json
import resttest
import unittest
from multiprocessing import Process
from django.core.management import execute_from_command_line
server_process = None
prefix = 'http://localhost:8000'
path = os.getcwd()
os.chdir('testapp') # Django project is separate and in subfolder 'testapp'
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testapp.settings")
config_args = list()
config_args.append('')
config_args.append('testserver')
config_args.append('test_data.json')
proc = Process(target=execute_from_command_line, args=[config_args])
proc.start()
os.chdir(path)
Run Code Online (Sandbox Code Playgroud)
错误:
Process Process-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap
self.run()
File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run
self._target(*self._args, **self._kwargs) …Run Code Online (Sandbox Code Playgroud)