我有一个模板类定义为:
#include <stdio.h>
#include <queue>
using namespace std;
template<class T>
class tbufferpool {
private:
const int m_initial;
const int m_size;
const int m_total;
T *m_buffer;
vector<T*> m_queue;
public:
// constructor
tbufferpool(int initial, int size) : m_initial(initial), m_size(size), m_total(initial*size) {
m_buffer = new T[m_total];
T* next_buffer = m_buffer;
for (int i = 0; i < initial; ++i, next_buffer += size) {
m_queue.push_back(next_buffer);
}
}
Run Code Online (Sandbox Code Playgroud)
在构造函数中的某些时候我做了:
m_buffer = new T[size];
Run Code Online (Sandbox Code Playgroud)
这适用于大多数用例,但在一次测试中,我得到valgrind报告的以下内存错误(下面的命令和相关代码段)测试仍然正常.有趣的一点是operator new(unsigned long)意味着它不是为我所预期的具体T型I设置"双"分配和对齐但是对于unsigned long?如果我修改我的缓冲池实现和硬编码,new double[size]那么这个内存错误没有显示,但我当然只能使用它tbufferpool<double> …
我有以下数据框:
> str(df)
'data.frame': 52 obs. of 3 variables:
$ n : int 10 20 64 108 128 144 256 320 404 512 ...
$ step : Factor w/ 4 levels "Step1","Step2",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value: num 0.00178 0.000956 0.001613 0.001998 0.002975 ...
Run Code Online (Sandbox Code Playgroud)
现在我想归一化/除以df$value属于同一个 n 的值的总和,这样我就可以得到百分比。这不起作用,但显示了我想要实现的目标。在这里,我将属于相同 n 的值的总和预先计算到 dfa 中,并尝试将原始值除以匹配df$value的聚合总数:dfa$valuen
dfa <- aggregate(x=df$value, by=list(df$n), FUN=sum)
names(dfa)[names(dfa)=="Group.1"] <- "n"
names(dfa)[names(dfa)=="x"] <- "value"
df$value <- df$value / …Run Code Online (Sandbox Code Playgroud) 我有什么需要改变以避免Hibernate给我懒惰的javassist实例代理而不是真正的实体?
更新:我使用的是Spring 3.x和Hibernate 4.x.
我用来加载实体的API是org.hibernate.internal.SessionImpl#load(Person.class, Id)简单的映射:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.perfectjpattern.example.model">
<class name="Person" table="PERSON_" >
<id name="id">
<generator class="native"></generator>
</id>
<property name="name" update="false" />
<property name="age" update="true" />
</class>
<query name="Person.findByName">
<![CDATA[select p from Person p where p.name = ? ]]>
</query>
<query name="Person.findByAge">
<![CDATA[select p from Person p where p.age = :Age ]]>
</query>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud) 我经常有一种Comparator类型,而我需要一种Comparable,反之亦然。是否有可重用的 JDK API 可以相互转换?大致如下:
public static <C> Comparable<C> toComparable(final Comparator<C> comparator) {
// does not compile because Hidden can not extend C,
// but just to illustrate the idea
final class Hidden extends C implements Comparable<C> {
@Override
public int compareTo(C another) {
return comparator.compare((C) this, another);
}
};
return new Hidden();
}
public static <C extends Comparable<C>> Comparator<C> toComparator(final Class<C> comparableClass) {
return new Comparator<C>() {
@Override
public int compare(C first, C second) {
assert …Run Code Online (Sandbox Code Playgroud) 我正试图在Akka之上实现MapReduce,很幸运能找到Akka Essentials一书的代码.但是,我发现这个示例实现有两个主要问题,两者看起来都像基本的并发设计缺陷,在一本关于Akka的书中找到它是非常令人震惊的:
完成后,客户端将调用,shutdown()但此时无法保证消息通过WCMapReduceServer.我看到WCMapReduceServer在任何时候只获取部分数量的客户端消息,然后WCMapReduceServer输出[INFO] [06/25/2013 09:30:01.594] [WCMapReduceApp-5] [ActorSystem(WCMapReduceApp)] REMOTE: RemoteClientShutdown@akka://ClientApplication@192.168.224.65:2552意味着客户端shutdown()在客户端实际设法刷新所有未决消息之前发生.在客户端代码行41中,我们看到shutdown()发生时没有先刷新.在关闭系统之前,Akka是否有办法强制执行刷新出站消息?
另一个我已经修复过的更大的缺陷是用于向MapReduce服务器发出EOF信号的方式,主要任务(文字文件)完成后,给定所有子任务(文件的每一行)都完成.他发送一个特殊的字符串消息,DISPLAY_LIST并且此消息排队的优先级最低,请参阅代码.这里的一个重大缺陷是即使DISPLAY_LIST具有最低优先级,如果任何Map(或Reduce)任务任意长,则DISPLAY_LIST在所有MapReduce子任务完成之前消息将通过,因此该MapReduce示例的结果是非确定性的,即每次运行都可以得到不同的词典.可以通过替换MapActor#onReceive实现来揭示该问题 使用以下内容即使一个Map步骤任意长:
public void onReceive(Object message) {
System.out.println("MapActor -> onReceive(" + message + ")");
if (message instanceof String) {
String work = (String) message;
// ******** BEGIN SLOW DOWN ONE MAP REQUEST
if ("Thieves! thieves!".equals(work)) {
try {
System.out.println("*** sleeping!");
Thread.sleep(5000);
System.out.println("*** back!");
}
catch (InterruptedException e) {
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud)我开发了一个基于Akka的服务器,并喜欢Microkernel的想法.但是,当我使用Java和Maven查看实现细节时,我在一个简单的Java主要启动类中交换一个框架特定的解决方案,承诺我不需要编写启动脚本,最后我发现它需要:
也许我错过了什么?但与普通的旧Java主解决方案相比,我没有看到任何更简单的设置或优势.
更新:在得到答案后再思考一下.根据Microkernel编写主类可能仍然是一个很好的例子,以便将来可以通过Akka控制台启动,例如
public class MapReduceServer implements Bootable {
//---------------------------------------------------------------
// public
//---------------------------------------------------------------
/**
* Default constructor simply initializes the system.
*/
public MapReduceServer() {
system = ActorSystem.create("MapReduceApp", ConfigFactory.
load().getConfig("MapReduceApp"));
}
//---------------------------------------------------------------
/**
* {@inheritDoc}
*/
@Override
public void startup() {
// create the list of reduce Actors
ActorRef reduceActor = system.actorOf(Props.create(ReduceActor.class)
.withRouter(new FromConfig()), "reduceActor");
// create the list of map Actors
ActorRef mapActor = system.actorOf(Props.create(MapActor.class, reduceActor).
withRouter(new FromConfig()), "mapActor");
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用git svn以下命令对大型 subversion 存储库进行从 subversion 到 Git 的单向迁移(重要的是迁移后仅使用 Git):
git svn clone --no-minimize-url --trunk=/trunk/GBI --branches=/branches/GBI --tags=/tags/GBI --authors-file=authors.txt https://yyy/svn-repos/zzz/ GBI
Run Code Online (Sandbox Code Playgroud)
运行几个小时后,克隆进程崩溃并出现以下错误:
r79791 = 00349b8063f90447ea8a040751cd2a40e74b74f3 (refs/remotes/origin/trunk)
Error from SVN, (175009): Malformed network data: The XML response contains invalid XML: Malformed XML: no element found
Run Code Online (Sandbox Code Playgroud)
然后我想也许有一种聪明的方法可以在违规修订后立即恢复流程......这可能吗?
任何想法首先导致此错误的原因是什么?
这个问题的答案建议首先使用--log-window-size来防止这个问题发生......我可以添加该选项并从失败的修订版中重试吗?这个问题是git svn内存使用问题还是仅与损坏的颠覆修订版有关的问题?
是否有一个git svn 选项来强化过程以忽略错误,而不仅仅是由于此错误而停止冗长的过程?
更新:我按照Atlassian Stash Migrating to Git 指南到达了这一点,该指南指示使用git svn及其svn-migration-scripts.jar实施
在查看如何将函数调用的结果展平为 dplyr::mutate 的一部分之前,我已经遇到过这个用例。这次不同,因为我需要调用的函数不依赖于一组 x 值。在这里,我使用 BCa(偏差校正加速间隔)计算自举置信区间,但需要为每个类层调用它两次,因为需要读出较低和较高的置信区间输出($bca[4]和$bca[5])。
if(!require(tidyverse)) install.packages("tidyverse", repos = "http://cran.us.r-project.org")
if(!require(boot)) install.packages("boot", repos = "http://cran.us.r-project.org")
if(!require(purrr)) install.packages("purrr", repos = "http://cran.us.r-project.org")
comp <- data.frame(
class = sample(c("bronze","silver","gold"),1500,replace=TRUE),
reputation = rnbinom(1500,mu=100,size=1)+1
)
# function to obtain the mean
bootMean <- function(sample, index) {
return(mean(sample[index]))
}
# bootstrapping using 3000 replications
B <- 3000
summaryRep <- comp %>%
group_by(class) %>%
summarise(mean=mean(reputation),
ymin=boot.ci(boot(data=reputation, statistic=bootMean, R=B), type=c("bca"))$bca[4],
ymax=boot.ci(boot(data=reputation, statistic=bootMean, R=B), type=c("bca"))$bca[5])
summaryRep
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上面帖子中提出的解决方案,但它们不起作用。首先是因为没有可能的映射,其次它仍然会抱怨boot.ci结果的维度。
如何boot在保持 …
我包含一个导致问题的自包含命令序列.我有一个正在进行中的群集配置.值得注意的是,当我没有在yarn-site.xml和中配置所有资源和历史管理器时,这个相同的示例工作正常mapred-site.xml.
问题Cannot create directory /user/deploy/QuasiMonteCarlo_1391523248477_997612342/in似乎是错误的文件路径前缀,因为相关的用户目录是:
/home/deploy//home/deploy/hdfs/home/deploy/hdfs/name/home/deploy/hdfs/data那它怎么试图访问/user/deploy?
deploy@olympus:~$ start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [olympus]
olympus: starting namenode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-namenode-olympus.out
hera: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-hera.out
olympus: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-olympus.out
zeus: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-zeus.out
poseidon: starting datanode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-datanode-poseidon.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /opt/dev/hadoop/2.2.0/logs/hadoop-deploy-secondarynamenode-olympus.out
starting yarn daemons
starting resourcemanager, logging to …Run Code Online (Sandbox Code Playgroud) 我在群集设置中使用Hadoop 2.2.0并且我反复得到以下错误,异常是在文件名称节点olympus中生成的/opt/dev/hadoop/2.2.0/logs/hadoop-deploy-secondarynamenode-olympus.log例如
2014-02-12 16:19:59,013 INFO org.mortbay.log: Started SelectChannelConnector@olympus:50090
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Web server init done
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Secondary Web-server up at: olympus:50090
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Checkpoint Period :3600 secs (60 min)
2014-02-12 16:19:59,013 INFO org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Log Size Trigger :1000000 txns
2014-02-12 16:20:59,161 ERROR org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode: Exception in doCheckpoint
java.io.IOException: Inconsistent checkpoint fields.
LV = -47 namespaceID = 291272852 cTime = 0 ; clusterId = CID-e3e4ac32-7384-4a1f-9dce-882a6e2f4bd4 ; blockpoolId = BP-166254569-192.168.92.21-1392217748925.
Expecting respectively: -47; 431978717; 0; CID-85b65e19-4030-445b-af8e-5933e75a6e5a; …Run Code Online (Sandbox Code Playgroud)