小编kha*_*kha的帖子

Android Studio很慢(如何加速)?

我最近从Eclipse升级到Android Studio,我不是很喜欢这种体验.我正在比较它们在Windows 7 64位终极版本16GB内存以及运行NVidia Geforce 780的英特尔i7 4770以及最新的NVidia驱动程序,如果它很重要,我正在运行最新的JDK和最新的Android Studio.

Android Studio在构建我可以使用的项目时非常缓慢,但它也非常耗费资源,有时会使PC速度变慢.

每当我在AS中构建或运行任何东西时,我的电脑似乎变得非常迟钝.如果我点击"Gradle build running"旋转器,它也会导致屏幕闪烁并偶尔消隐我的第二台显示器,我觉得很奇怪.RAM的使用率也达到了3GB左右,我觉得无所事事(这是在几次构建后它闲置的时候).

此外,在AS底部的面板保持跳来跳去这是一个可怕的用户体验(从移动AndroidMessagesVersion Control或任何其他取决于发生了什么,这是非常,非常讨厌一个特设的基础上).

我想知道的基本上是:

1)如何让Android Studio更好地运行?我可能做错了什么或遗漏了一些我不知道的更新,我确信其他人也注意到了这些行为,并找到了一些解决方案.

2)如何"固定"底部面板,使它们不会跳转,而是让我,用户,当我希望而不是自动切换它们时导航到它们?

非常感谢,如果不是这些问题的正确位置,我再次道歉.

编辑1 更多评论:

  • 我正在使用stable今天的最新版本.构建是Android Studio 1.2.2 Build # AI-141.1980579, Build on June 3, 2015
  • 使用Java 7或8时会发生这种情况.它似乎与Java版本无关.
  • 我没有使用演示模式.只是香草的观点.
  • 对构建配置进行更改(感谢@Blackbelt及其答案)似乎对构建有所帮助,但其他问题仍然存在迟缓和一般用户体验.

android-studio

365
推荐指数
12
解决办法
25万
查看次数

打字稿睡觉

我正在使用Typescript在Angular 2中开发一个网站,我想知道是否有办法实现thread.sleep(ms)功能.

我的用例是在几秒钟之后提交表单后重定向用户,这在html或javascript中非常容易,但我不知道如何在Typescript中执行此操作.

非常感谢,

typescript angular

93
推荐指数
7
解决办法
20万
查看次数

cassandra如何找到包含数据的节点?

我已经阅读了很多关于Cassandra的文章和很多问题/答案,但我仍然无法弄清楚Cassandra在读取数据时如何决定要去哪个节点.

首先,关于假想集群的一些假设:

  1. 复制策略=简单
  2. 使用随机分区器
  3. 10个节点的集群
  4. 复制因子为5

以下是我对基于各种Datastax文章和其他博客文章的写作工作的理解:

  • 客户端将数据发送到随机节点
  • 基于主键的MD5散列来决定"随机"节点.
  • 数据被写入commit_log并可记忆,然后传播4次(RF = 5).

  • 然后选择环中的4个下一个节点,并在其中保留数据.

到现在为止还挺好.

现在的问题是,当客户端向集群发送读取请求(比如CL = 3)时,Cassandra如何知道需要联系哪些节点(10个中的10个是最坏的情况)来获取这些数据?当然,它并不是全部10个节点,因为效率低下.

我是否正确假设Cassandra将再次执行主键(请求)的MD5哈希并根据该选择选择节点然后走环?

此外,网络拓扑案例如何工作?如果我有多个数据中心,Cassandra如何知道每个DC/Rack中的哪些节点包含数据?据我所知,只有第一个节点是显而易见的(因为主键的散列明确地导致了该节点).

很抱歉,如果问题不是很清楚,如果您需要有关我的问题的更多详细信息,请添加评论.

非常感谢,

cassandra cassandra-2.0

28
推荐指数
3
解决办法
1万
查看次数

Angular 2初始加载进度

我已经尽力将Angular 2的捆绑大小降低,并且使用Browserify+ Rollup+ Minify+ 将大小减小到~300kb(Angular 2 + jquery + bootstrap +其他一些小型第三方库)相对成功GZIP但是即便如此大小,下载捆绑包仍然需要一段时间,然后考虑到反射和zone.js的初始加载时间,这意味着在较慢的设备(手机)上加载时间可能需要4-5秒现场.

虽然我知道这是不可避免的(至少现在),有没有办法用下载百分比+ reflect/zone.js初始化来显示初始加载的加载进度?

大多数例子都是这样的:

<body>
   <my-app>Loading...</my-app>
</body>
Run Code Online (Sandbox Code Playgroud)

哪个工作正常,Loading...可以用微调器或任何可能选择的自定义模板替换,但有没有办法以有意义的方式获得实际进度?

我正在寻找的是类似于Gmail加载进度,这是一个具有最小/最大值的实际进度条而不是一些不确定的微调器,以便用户可以获得某种形式的指示,指示他们需要等待网站的时间长度加载.

提前谢谢了,

更新(2016年10月24日)

我已经开始使用NGC提前编译(https://angular.io/docs/ts/latest/cookbook/aot-compiler.html),它已经加快了相应的速度(虽然捆绑大小增加到〜 500kb压缩)但是在下载完所有内容后仍然需要大约300ms来加载网站.

理想情况下,我希望能够拦截下载和加载过程,调查它们的状态(例如,下载230kb/500kb或完成模块构建的10%),然后加载进度条和实际给出的状态栏向用户指示他们究竟在等什么.

我目前所拥有的是为进度条加载最小的CSS,显示它然后在onLoad函数上按顺序加载所有有角度的东西,虽然它比以前更平滑,但用户必须等待多长时间仍然不明显 - 根据互联网连接和设备的功能,是半秒到几秒.

angular

15
推荐指数
1
解决办法
1414
查看次数

有没有一种聪明的方法来处理NuGet中的包依赖?

我们正在开发一个具有各种"共同"依赖关系(Unity,Prism等)的WPF应用程序.

在添加新项目然后为每个项目设置NuGet包依赖项时都很好,但是当涉及到升级时,它真的很痛苦,因为这意味着我们必须遍历每个项目,删除旧的引用然后重新获取最新的包来自NuGet.

例如,今天我的任务是将Prism从5.0升级到6.0(无论如何都有破坏性更改),这意味着除了修复我必须通过每个项目的所有命名空间冲突等之外,删除旧的引用,添加新的依赖性并冲洗并重复.

我的问题是,有没有更聪明的方法来解决这个问题,还是这是标准方法?

提前谢谢了,

更新:

我主要关心的是没有出现在包管理器上的"主要"升级.版本5.0 - > 6.0升级将被视为主要升级,因此,在NuGet包管理器中不会对其应用自动更新.

我不认为NuGet能够自动为我做这个,因为这样的升级可能(并且经常)包括重大改变但我想知道是否有一种方法来进行主要升级比从删除引用更少痛苦每个项目的项目和packages.config,然后使用NuGet重新添加它们.对于一个相对较大的项目,这非常耗时,我想知道是否有人有更好的方法来管理这种依赖.

c# visual-studio nuget

10
推荐指数
1
解决办法
540
查看次数

App崩溃后会发生什么?

我正在开发一个Android应用程序,正如预期的那样,我的代码崩溃(错误,空指针等).

当应用程序崩溃时,它会重新启动,即使我没有编写任何代码来执行此操作(我想这是默认行为?!)但问题是,应用程序打开的状态不正确.

以下是应用启动时通常会发生的情况:

  • 最初,应用程序以"启动画面"打开.此屏幕尝试使用共享首选项中的持久标记对用户进行身份验证,并从服务器加载一些默认值并将其保留在某些服务中.
  • 根据登录成功,它将转到主屏幕或登录屏幕.

当应用程序正常启动时,一切正常并且初始化序列按预期执行,但是当它因崩溃而重新启动时,将在启动屏幕片段中填充的值(例如登录用户或从服务器加载默认值)都是无效的,这意味着它们永远不会被执行.

这让我相信应用程序重新启动时的事件序列是完全错误的,即不是使用正确的活动重新启动应用程序,在清单中指定为Launcher,它似乎重新启动错误并从错误的活动开始.

所以这就是问题:什么决定了我的应用程序应该在崩溃发生时重新启动,以及决定应该如何启动它的原因是什么?当应用程序从崩溃中启动时,我是否可以捕获任何事件,以便我可以覆盖初始化序列?有没有办法强制应用程序始终从启动器活动开始?

提前谢谢了,

android

9
推荐指数
1
解决办法
1843
查看次数

Cassandra有两个冗余节点

我按照DataStax网站上的文档设置了两个运行Cassandra的服务器.我目前的设置是

1个种子节点(在两个yamls中配置)

运行时,两个节点都已启动(通过nodetool进行测试时),两者似乎都正确复制了数据,但我注意到当我关闭种子节点时,另一个节点不允许客户端连接(无论是通过他们的API或者通过连接到cqlsh)这是一个问题.

我的要求是有两个服务器是彼此完美的副本,如果一个服务器暂时关闭(例如由于磁盘空间故障),另一个服务器可以接管请求,直到损坏的服务器重新联机.

鉴于此要求,我有以下问题:

  1. 我是否需要将两个节点都设置为"种子"节点?
  2. 我如何确保在两台服务器上复制所有内容?这是自动发生还是我需要设置一些设置?

提前谢谢了,

cassandra

9
推荐指数
1
解决办法
5292
查看次数

与多个计数器专栏的卡桑德拉桌

我想知道在Cassandra的同一桌/列家庭中有多个计数器是否是一个好主意(表现明智)?我目前的设置如下:

CREATE TABLE IF NOT EXISTS contentCounters (
downvotes counter,
comments counter,
upvotes counter,
contentid uuid,
PRIMARY KEY (contentid)
);
Run Code Online (Sandbox Code Playgroud)

但是我不确定在性能方面是否可以在同一个表上安装多个计数器.以前,我有3个带计数器的表(跟踪upvote,downvote和comment计数),但我想将它们全部组合到上面的层次结构中,以便快速查询到这个表来获取这些值(因为这是我的用例) .

任何建议将不胜感激.

非常感谢,

cassandra

8
推荐指数
1
解决办法
1410
查看次数

应使用哪种布局来显示"页脚",具体取决于屏幕内容的其余部分

首先,我为标题道歉.我觉得很长很难选择一个更具描述性的标题但却找不到一个.

我有一个带标题的屏幕(可变长度 - 使用滑动操作栏),中间部分(滚动视图)和显示广告的底部(固定长度).我可以使用RelativeLayout编写屏幕,但我真正想做的是:

  • 如果scrollview的内容(中间部分)不够长,无法填满屏幕(包括标题),我想在屏幕底部显示广告
  • 如果scrollview的内容+标题长于屏幕,我想在滚动视图的内容下显示广告,这意味着除非用户滚动到片段的底部,否则它不可见.

想象一下滚动视图的内容为短文本或图像+长文本.对于第一种情况,滚动视图内容将很短,因此我理想情况下会在屏幕底部显示广告,因为我有足够的空间,但如果是图像+文本,则会大于屏幕高度,因此,我想在用户滚动到底部后显示广告.

我想这样做的原因是,如果屏幕上有有用的内容(用户体验),广告不一定占用空间.

无论如何在没有编写我自己的自定义布局的情况下在Android中实现这一点?如果是这样,你会推荐哪种观点?

提前谢谢了,

android

5
推荐指数
1
解决办法
184
查看次数

Elasticsearch Nest 通配符查询(带空格)

简洁版本:

我想使用 Nest 编写一个弹性搜索查询来获取完整的索引项(ContentIndexables已索引的完整索引项(在我的例子中为我的自定义类型)。该查询受 [some string] + * 术语查询的约束(即 String.StartsWith(),其中 [some string] 可能包含也可能不包含空格。

这与CompletionSuggester我需要检索完整对象而不是字符串建议不同。

到目前为止我尝试过的:

当我查询不带空格的文本时,使用下面的代码返回所需的输出。但是,如果我的搜索词包含空格,则它不会返回预期结果。

以下是我搜索字段的方法:

var searchResults = _client.Search<ContentIndexable>(
            body =>
            body
                .Index(indexName)
                .Query(
                    query =>
                    query.QueryString(
                        qs => qs.
                                  OnFields(f => f.Title, f => f.TextContent)
                                  .Query(searchTerm + "*"))));
Run Code Online (Sandbox Code Playgroud)

这是一个演示如何重现问题的单元测试:

indexService.IndexUserItemsSync(testGuid, IndexType.submission, new ContentIndexable
        {
            ContentId = Guid.NewGuid(),
            TextContent = "Some description",
            Title = "title"
        });

        indexService.IndexUserItemsSync(testGuid, IndexType.submission, new ContentIndexable
        {
            ContentId = Guid.NewGuid(),
            TextContent = "Some description",
            Title = "title that is long" …
Run Code Online (Sandbox Code Playgroud)

c# elasticsearch nest

5
推荐指数
1
解决办法
8103
查看次数