首先,我想说明我是Web开发的新手.
我被要求建立一个静态网站(对于一个小型酒店),我买了这个响应式html5 - CSS3模板.它由纯html5 - css3和一些用于幻灯片等的JavaScript组成,并使用bootstrap框架.
我已经建立了网站,现在我被要求添加多语言支持.我可以通过bootstrap实现这一目标吗?它甚至可以用CSS完成吗?
如果没有,我是否应该在子文件夹中包含所有.html文件的副本(例如"website"/ en /"content"),并通过页面顶部的链接重定向用户,或者我应该使用JavaScript来决定语言?
简而言之,我希望用户从其他国家访问我的网站以获取该网站的英文版本,而其他所有用户都获得默认语言.我希望尽可能快地开发(这就是为什么我买了一个模板)以便尽快启动并运行(夏季已经开始).我有一个合理的编程背景,但我在Web开发方面是全新的.
我遇到了一个场景,我想要小写HashMap的所有键(不要问为什么,我只需要这样做).HashMap有数百万条目.
起初,我以为我只是创建一个新的Map,迭代要小写的地图条目,并添加相应的值.这个任务应该每天只运行一次或类似的东西,所以我想我可以裸露这个.
Map<String, Long> lowerCaseMap = new HashMap<>(myMap.size());
for (Map.Entry<String, Long> entry : myMap.entrySet()) {
lowerCaseMap.put(entry.getKey().toLowerCase(), entry.getValue());
}
Run Code Online (Sandbox Code Playgroud)
但是,当我的服务器在这一次过载时,我正要复制Map时,会导致一些OutOfMemory错误.
现在我的问题是,如何以最小的内存占用来完成这项任务?
在小写后删除每个键 - 添加到新Map帮助?
我可以利用java8流来加快速度吗?(例如这样的事情)
Map<String, Long> lowerCaseMap = myMap.entrySet().parallelStream().collect(Collectors.toMap(entry -> entry.getKey().toLowerCase(), Map.Entry::getValue));
Run Code Online (Sandbox Code Playgroud)
更新
似乎它是一个Collections.unmodifiableMap所以我没有选择
在小写之后移除每个键 - 添加到新地图
当内存需求很高时,我正在尝试测试某些c ++应用程序的行为,但似乎无法使用所有可用的ram。我有以下程序:
class Node {
public:
Node *next;
};
int main() {
int i=0;
Node *first = new Node();
Node *last = first;
//Should be 120000000 * 8 bytes each -> approx 1 GB
for (i=0; i < 120000000; i++) {
Node *node = new Node();
node->next = 0;
last->next = node;
last = last->next;
}
for (i=0; i < 120000000; i++) {
Node *oldfirst = first;
first = first->next;
delete oldfirst;
}
delete first;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
仅仅因为Node类占用8个字节,就应该分配大约1 GB的数据。我已经通过sizeof,gdb甚至valgrind对此进行了验证。 …
c++ ×1
css3 ×1
hashmap ×1
html5 ×1
java ×1
java-8 ×1
java-stream ×1
javascript ×1
malloc ×1
multilingual ×1
new-operator ×1