是否可以在不知道索引的情况下从PHP数组中删除字符串(参见下面的示例)?
例:
array = array("string1", "string2", "string3", "string4", "string5");
Run Code Online (Sandbox Code Playgroud)
我需要删除string3.
甲骨文:
select systimestamp from dual
Run Code Online (Sandbox Code Playgroud)
MySQL的:
select current_timestamp
Run Code Online (Sandbox Code Playgroud)
SQL Server:
select current_timestamp
Run Code Online (Sandbox Code Playgroud)
PostgreSQL的:
select current_timestamp
Run Code Online (Sandbox Code Playgroud)
问题是,如何获取HSQLDB中的当前时间戳?我使用的是1.8.0.10版
为什么24*60*60*1000*1000除以24*60*60*1000在Java中不等于1000?
我有一个高流量的网站,我使用休眠.我还使用ehcache来缓存生成页面所需的一些实体和查询.
问题是"并行缓存未命中",长期解释是,当应用程序启动并且缓存区域很冷时,每个缓存区域被不同的线程多次填充(而不是仅一次),因为该站点被许多用户击中同时.此外,当某些缓存区域无效时,由于相同的原因,它会被重新填充多次.我怎么能避免这个?
我设法通过向hibernate.cache.provider_class提供我自己的实现,将1个实体和1个查询缓存转换为BlockingCache,但BlockingCache的语义似乎不起作用.甚至最糟糕的是BlockingCache死锁(块)和应用程序完全挂起.线程转储显示在get操作上阻塞处理在BlockingCache的互斥锁上.
那么,问题是,Hibernate是否支持这种用途?
如果没有,你如何在生产中解决这个问题?
编辑:hibernate.cache.provider_class指向我的自定义缓存提供程序,它是SingletonEhCacheProvider的复制粘贴和start()方法的结尾(在第136行之后)我这样做:
Ehcache cache = manager.getEhcache("foo");
if (!(cache instanceof BlockingCache)) {
manager.replaceCacheWithDecoratedCache(cache, new BlockingCache(cache));
}
Run Code Online (Sandbox Code Playgroud)
这样在初始化时,在其他人触摸名为"foo"的缓存之前,我用BlockingCache来装饰它."foo"是查询缓存,"bar"(相同的代码但省略)是pojo的实体缓存.
编辑2:"似乎不起作用"意味着最初的问题仍然存在.由于并发性,缓存"foo"仍然使用相同的数据重新填充多次.我通过使用10个线程的JMeter强调网站来验证这一点.我希望9个线程阻塞,直到第一个请求"foo"数据完成它的工作(执行查询,在缓存中存储数据),然后直接从缓存中获取数据.
编辑3:可以看到对此问题的另一种解释https://forum.hibernate.org/viewtopic.php?f=1&t=964391&start=0但没有明确的答案.
我在一个tomcat实例上运行了一个Java webapp.在高峰时段,webapp每秒大约30页,通常大约15页.
我的环境是:
O/S: SUSE Linux Enterprise Server 10 (x86_64)
RAM: 16GB
server: Tomcat 6.0.20
JVM: Java HotSpot(TM) 64-Bit Server VM 1.6.0_14
JVM options:
CATALINA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m
-XX:+UseParallelGC
-Djava.awt.headless=true
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps"
JAVA_OPTS="-server"
Run Code Online (Sandbox Code Playgroud)
经过几天的正常运行后,Full GC开始更频繁地发生,并且它成为应用程序可用性的严重问题.在tomcat重新启动之后,问题就会消失,但当然会在5到10天或30天之后返回(不一致).
重启之前和之后的完整GC日志位于http://pastebin.com/raw.php?i=4NtkNXmi
它显示重启之前的日志,在6.6天的正常运行时间,因为完整的GC需要2.5秒,并且每隔约6秒发生一次.
然后它会在重新启动后显示一个日志,其中Full GC仅每5-10分钟发生一次.
jmap -dump:format=b,file=dump.hprof PID当Full GCs出现时,我有两个转储(我不确定在完整GC发生时是否完全正确,或者在两个完整GC之间),并在http://www.eclipse.org中打开它们/ mat /但在泄漏嫌疑人中没有得到任何有用的东西:
请注意,我从未得到过OutOfMemoryError.
关于我下一步应该去哪看的任何想法?
很多人和作者建议我们使用list而不是array.
List <Integer> list = new ArrayList<Integer>();
list.addElement(1);
....
Run Code Online (Sandbox Code Playgroud)
它背后的原因是什么?
我正在阅读Douglas Crockford的网页,JavaScript:世界上最容易被误解的编程语言,我不禁注意到,在设计错误下,他提到了"字面正则表达式的符号".究竟他在说什么?JavaScript的正则表达式表示法有什么问题,为什么?
我有User一个Log班级(我无法改变):
class User {
private long id;
private String name;
private Set<Log> accessLogs;
private Set<Log> actionLogs;
}
class Log {
private String what;
private Date when;
}
Run Code Online (Sandbox Code Playgroud)
可能的映射将如下所示:
<class name="com.example.User" table="users">
<id name="id" access="field">
<generator class="native" />
</id>
<property name="name" length="256" />
<set name="accessLogs" table="user_access_logs" cascade="all-delete-orphan" order-by="`when`">
<key column="user_id" />
<composite-element class="com.example.Log">
<property name="what" length="512" />
<property name="when" column="`when`" />
</composite-element>
</set>
<set name="actionLogs" table="user_action_logs" cascade="all-delete-orphan" order-by="`when`">
<key column="user_id" />
<composite-element class="com.example.Log">
<property name="what" length="512" /> …Run Code Online (Sandbox Code Playgroud) 在4到24小时 4小时到8天的压力测试(30个线程点击应用程序)后,我在(当前最新的)tomcat 6.0.24上运行了一个Web应用程序(当前最新的)jdk 1.6.0.18崩溃了6 mil.综合浏览量/天).这是RHEL 5.2(Tikanga).
崩溃报告位于http://pastebin.com/f639a6cf1,崩溃的一致部分是:
JVM使用以下选项运行:
CATALINA_OPTS="-server -Xms512m -Xmx1024m -Djava.awt.headless=true"
Run Code Online (Sandbox Code Playgroud)
我还使用http://memtest.org/测试了内存中的硬件问题48小时(整个内存14次通过)没有任何错误.
我已经能够-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps检查任何GC趋势或空间耗尽,但那里没有任何可疑之处.GC和完整GC以可预测的间隔发生,几乎总是释放相同数量的内存容量.
我的应用程序不直接使用任何本机代码.
关于我接下来要去哪看的任何想法?
编辑 - 更多信息:
1)这个JDK中没有客户端vm:
[foo@localhost ~]$ java -version -server
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
[foo@localhost ~]$ java -version -client
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed …Run Code Online (Sandbox Code Playgroud)