问题标签 [scalable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1655 浏览

performance - 将数据库放到专用服务器上时性能会变差吗?

我听说扩展系统的一种方法是为 Web 服务器、数据库服务器使用不同的机器,甚至为每种类型的服务器使用多个实例

我想知道这如何提高“一台服务器用于一切”模型的性能?这些服务器之间的连接没有瓶颈吗?此外,在从不同的 Web 服务器访问数据库服务器时,您将不得不关心同步。

0 投票
3 回答
2751 浏览

php - PHP:跟踪用户是否在线的最有效方法?

我正在开发一个考虑到可扩展性的项目,我已经走到了一个十字路口。在我的网站上,我想检测用户是否在线。我想不出最好的方法来处理这个问题。我的想法是这样的(在伪代码中):

因此,每当用户登录时,我都可以将他的online列更新为true. 然而,这最终会导致每次用户登录时都会发生 SQL 查询,如果发生这种情况,我会说,每秒 10 次登录,那么,就会发生很多查询。我想我可以做同样的事情但在不同的表中的另一种方法:

出于某种原因,我相信由于与表的分离,这会导致更少的内存消耗user。但是我不确定它是否会对性能产生任何实际影响。

所以,如果你能用你的洞察力祝福我,我会更加感激,谢谢。

0 投票
1 回答
659 浏览

android - 在 android 平板电脑上为应用程序设置不可缩放的宽度

我正在使用 phonegap 开发适用于 android 平板电脑的应用程序。我正在转换现有网页,所以我宁愿不更改 css 或 html。我正在使用银河选项卡(android 2.2)进行测试

我想将可视宽度设置为 800px 并禁止用户放大/缩小。

如果我使用 <meta name="viewport" content="width=800px>,则宽度设置正确,但用户仍然可以缩放页面。

如果我使用<meta name="viewport" content="width=800px, user-scalable=no">,则用户无法缩放页面,但宽度会更小(即页面被放大,用户必须滚动才能查看页面)

我唯一能想到的另一件事是使用<meta name="viewport" content="minimum-scale=x, maximum-scale=x">wherex是一些我不知道如何找到的神奇数字。

任何帮助,将不胜感激。

0 投票
2 回答
1893 浏览

database - 快速的写入性能,即使读取速度非常慢

抱歉,如果已经有答案,我搜索了它,但没有找到我的方案。

又是一个类似“什么是最快/最佳性能数据库?”之类的问题。但由于答案取决于场景,我的场景是这样的:我想将许多日志写入数据库,每秒数千。但我不会经常阅读它们。确实,其中 99,99% 将永远不会再被阅读,但有时我需要阅读。模式并不复杂,只是键/值。偶尔我会按价值阅读,如果阅读需要几分钟,我根本不在乎。读取的正确性至关重要,但对性能而言并不重要。

到目前为止,最好的解决方案似乎是 MongoDB、Cassandra……也许是最好的 DynamoDB?

0 投票
2 回答
253 浏览

atomic - 可扩展的 O(1) 内存线程计数器?

我有一堆线程和一堆计数器。线程递减计数器,如果计数器达到零,就会发生有趣的事情。使用原子操作实现这一点很简单。

但是,如果我们需要两个属性来保持而不考虑线程或计数器的数量,这将变得更加困难:

  1. 可扩展性:递减一个计数器是 O(polylog)。
  2. 紧凑性:每个计数器的内存为 O(1)。

我知道如何单独执行其中任何一项:简单的实现是紧凑的,分层计数网络 [4] 是可扩展的)。有可能两者都做吗?

注意:由于 O(n) 个线程不能在 O(n) 时间内做出 O(n) 个不同的更改 O(1) 个内存,因此解决此问题需要在不同计数器之间共享数据结构。

[4]:J. Aspnes、M. Herlily 和 N. Shavit。计数网络。ACM 杂志,41(5):1020-1048,1994 年 9 月。

更新:Jed Brown 指出了一个明显的事实,即 O(1) 时间是不可能的。更改为多对数。

0 投票
1 回答
193 浏览

jakarta-ee - 处理高内存可扩展 Java EE 应用程序

我在一个 Java EE 应用程序中工作,它需要太多的内存服务器端应用程序级数据(即它不是用户级数据)。通过应用程序级别的数据,我的意思是所有用户的数据都是不变的,例如主数据。到目前为止,我们在一台具有 16 GB RAM 的 Windows 服务器上为 15-20 个并发用户使用 EHCache。我们为我们的应用程序指定堆大小为 8GB。

现在我们需要重新设计应用程序,使其能够支持超过 500 个并发用户。这将导致更多的内存数据需求。

我想在这种情况下有你的观点,以便应用程序具有足够的可扩展性。

据我了解,以下解决方案可以提供帮助-

  1. 实施负载平衡,以便分配负载,但每个服务器上的内存数据仍然很高,因为它是应用程序级别的数据。虽然会在一定程度上有所帮助。

  2. 将此实现为无状态操作,而不是将数据保存在缓存中。但这会对性能产生影响。我在某处读到无状态是可扩展性的关键。我想避免这种情况,因为这需要太多的工作。

  3. 将 Terracotta 的 BigMemory 与 EHCache 结合使用。它基本上以一种特殊的方式将数据保存在磁盘上,即数据访问速度仍然不错。请注意,这不是免费产品,我们有这样的免费选项吗?

  4. 选择基于云的内存架构?对此不是很清楚。

任何建议将不胜感激。

0 投票
2 回答
3681 浏览

arrays - 如何创建一个excel列的内容数组

我在excel电子表格的A列中有10个值(它会更多)有没有办法获取列的值并将它们放入数组中?

如果可能的话,是否可以将这些值以不同于它们在电子表格中的顺序放置。例如,如果我的电子表格值是“Apple”“Orange”和“Banana”,那么我希望我的数组看起来像位置 0“Orange”、位置 1“Banana”和位置 2“Apple”。

有人知道如何做到这一点吗?顺便说一句,它需要从 10 扩展到 1000 个值,而无需过多编辑代码

0 投票
2 回答
9036 浏览

c++ - 使用 QPainter 绘制可扩展的 QIcon

我想设计一个新的 QIcon 并希望它看起来像一个带有圆角矩形的固定文本

在最终应用了缩放转换的 QPainter 上绘制时,该图标应该在没有“像素块”效果的情况下进行缩放(例如,当我绘制到作为 QGraphicsView 的一部分的小部件中并在其场景上应用了缩放时)。

因此,我很难知道如何绘制我的 QIcon。如果我按照以下方式进行,我将绘制一个始终具有固定数量像素的 QPixmap,因此当比例足够大时不可避免地会引入像素块效果

我正在寻找的是一种类似于 QFont 的drawText工作方式。无论我的比例有多大,当我绘制字体时,它总是看起来很清晰,我无法检测到单个像素。

我想我可以告诉我将QPainter我的图标绘制成一个给定的像素矩形,并在让我将项目渲染成一个可能更大的矩形或像素图之前QPainter转换矩形本身。QIconEngine::paint但我看不出我怎么能做这样的事情。

我只是愚蠢而没有看到明显的解决方案吗?

0 投票
1 回答
103 浏览

javascript - 以可扩展的方式切换 JavaScript webapp 中的 i18n 字段

我正在编写一个 100% JavaScript webapp 来管理产品目录。除其他外,我正在使用 Backbone & Mustache。

每个产品都有一个名称,需要翻译。因此,对于每个产品,我添加的<input>元素与要翻译的语言一样多,如下所示:

<input>我根据当前选择的依赖 CSS 类的语言、第一次渲染以及用户更改语言时显示/隐藏元素:

这种方法可能有点幼稚,但它很简单,因为每个输入字段的属性中都包含保存数据所需的所有信息。blur当用户离开现场时,我正在监听事件以保存数据。

问题是当元素数量增加时语言切换很慢。

我在使用好的技术吗?我不认为在语言更改时重新渲染产品项目是一个好的解决方案。

0 投票
1 回答
802 浏览

window - 如何为设备无关像素 (DIP) 构建 Windows 商店应用程序

我正在构建 Windows 商店应用程序。我在 Visual Studio .net 2012 中使用 Windows 8 和 WPF。

此应用程序的 UI 应可扩展到不同的屏幕。我创建了一个页面,当在 10.6" 屏幕的分辨率为 1920 x 1080 的模拟器上运行应用程序时,控件(按钮、图像、文本)正确匹配。问题是当我更改分辨率时,控件的行为不正确

  • 当分辨率或屏幕尺寸增加(例如 23" 屏幕为 1920 x 1080)时,页面上会创建空白空间;
  • 当分辨率或屏幕尺寸减小(例如 10.6" 屏幕为 1024 x 768)时,控件尺寸也会增加,其中一些控件在 UI 中不可见,因为它们在底部显示得太远。

有没有办法构建独立于屏幕尺寸或分辨率的“可扩展”商店应用程序?当分辨率改变或从一个屏幕到另一个屏幕时,控件大小和字体大小应该增加和减小,但它们都应该适合空间并且不应该创建空白区域。

任何帮助将不胜感激。

谢谢你